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)来调和

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐