Kubernetes 之 控制平面(Control Plane)
·
kube-apiserver —— 所有操作的入口
所有的内部组件scheduler(调度器)controller-manager(控制器管理器),以及外部用户 kubectl 或客户端都通过它来交互
同时我们可以部署多个apiserver来提高可用性
etcd —— 集群的“数据库”
当调度器收集的node的具体硬件信息时将内容保存到其中,同时控制器管理器控制node产生的数据也会记录到这里
kube-scheduler —— 分配 Pod 到节点的“调度员”
首先它通过apiserver来监听获取未调度的 Pod
将收集到的pod通过两个步骤部署到node中
1.过滤(Predicates)排除不满足 Pod 要求的节点(如资源不足、端口冲突、节点选择器不符等
2.打分(Priorities):对剩余节点按优先级打分,选择分数最高的节点(如资源最充裕、亲和性规则满足等)。
筛选完成后将选定的节点信息通过 apiserver 写回 Pod 的 spec.nodeName 字段,通知 kubelet(工作节点的代理程序) 去运行。
controller-manager (控制器管理器)
它是多个控制器的总称,其中包含
Node Controller:监控节点健康,响应节点宕机
Replication Controller(实际由 Deployment 的 ReplicaSet 控制器实现):确保 Pod 副本数量正确。
Endpoint Controller:维护 Service 与 Pod 的映射关系
等控制器、
每个控制器通过 apiserver 监听资源的变化,一旦发现当前状态与期望状态不符,就采取动作(如创建、删除、更新 Pod)来调和
更多推荐


所有评论(0)