在命名空间的kube-system命名空间里 , 有一个名称为kube-api-master的pod , 这个pod就是运行着kube-api-server进程 , 它绑定了master主机的ip地址和6443端口 , 但是在default命名空间下 , 存在一个叫kubernetes的服务 , 该服务对外暴露端口为443 , 目标端口6443 , 这个服务的ip地址是clusterip地址池里面的第一个地址 , 同时这个服务的yaml定义里面并没有指定标签选择器 , 也就是说这个kubernetes服务所对应的endpoint是手动创建的 , 该endpoint也是名称叫做kubernetes , 该endpoint的yaml定义里面代理到master节点的6443端口 , 也就是kube-api-server的IP和端口 。这样一来 , 其他pod访问kube-api-server的整个流程就是:pod创建后嵌入了环境变量 , pod获取到了kubernetes这个服务的ip和443端口 , 请求到kubernetes这个服务其实就是转发到了master节点上的6443端口的kube-api-server这个pod里面 。
22、k8s中命名空间的作用是什么?amespace是kubernetes系统中的一种非常重要的资源 , namespace的主要作用是用来实现多套环境的资源隔离 , 或者说是多租户的资源隔离 。
k8s通过将集群内部的资源分配到不同的namespace中 , 可以形成逻辑上的隔离 , 以方便不同的资源进行隔离使用和管理 。不同的命名空间可以存在同名的资源 , 命名空间为资源提供了一个作用域 。
可以通过k8s的授权机制 , 将不同的namespace交给不同的租户进行管理 , 这样就实现了多租户的资源隔离 , 还可以结合k8s的资源配额机制 , 限定不同的租户能占用的资源 , 例如CPU使用量、内存使用量等等来实现租户可用资源的管理 。
23、pod资源控制器类型有哪些?
- Deployments:Deployment为Pod和ReplicaSet提供声明式的更新能力 。
- ReplicaSet:ReplicaSet的目的是维护一组在任何时候都处于运行状态的Pod副本的稳定集合 。因此 , 它通常用来保证给定数量的、完全相同的Pod的可用性 。
- StatefulSets:和Deployment类似 , StatefulSet管理基于相同容器规约的一组Pod 。但和Deployment不同的是 , StatefulSet为它们的每个Pod维护了一个有粘性的ID 。这些Pod是基于相同的规约来创建的 , 但是不能相互替换:无论怎么调度 , 每个Pod都有一个永久不变的ID 。
- DaemonSet:DaemonSet确保全部(或者某些)节点上运行一个Pod的副本 。当有节点加入集群时 , 也会为他们新增一个Pod 。当有节点从集群移除时 , 这些Pod也会被回收 。删除DaemonSet将会删除它创建的所有Pod 。
- Jobs:Job会创建一个或者多个Pod , 并将继续重试Pod的执行 , 直到指定数量的Pod成功终止 。随着Pod成功结束 , Job跟踪记录成功完成的Pod个数 。当数量达到指定的成功个数阈值时 , 任务(即Job)结束 。删除Job的操作会清除所创建的全部Pod 。挂起Job的操作会删除Job的所有活跃Pod , 直到Job被再次恢复执行 。
推荐阅读
- Linux 被爆“满分级”关键内核级漏洞
- 基于NT架构脱胎换骨!QQ for Linux 3.0正式版上架官网
- .NET MAUI 有一个 Linux 短板
- Linux系统禁止用户使用su命令切换root
- CVE-2022-2602 Linux Kernel 本地权限提升漏洞修复过程
- linux重启服务器命令。机房服务器重启按哪个开关?
- cad工程师认证证书报考条件 cad工程师认证证书
- linux x86是什么意思;系统的x86与x64是什么意思以及他们的区别?
- 招聘|为什么要考采购工程师证书呢?
- 消防工程师报考条件是什么