用户提交 Deployment → 控制器创建 ReplicaSet → ReplicaSet 创建 Pod → Scheduler 调度 Pod → Kubelet 运行容器

第一步:用户提交

用户通过 kubectl apply 提交 Deployment YAML 文件,API Server 验证后存入 Etcd。

第二步:控制器工作

1. Deployment Controller 监听到新 Deployment,创建对应的 ReplicaSet

2. ReplicaSet Controller 监听到新 ReplicaSet,根据 replicas 数量创建 Pod 对象(API对象)

第三步:调度决策

Scheduler 监听到未调度的 Pod:

1. 过滤:排除不满足条件的节点

2. 打分:对剩余节点评分

3. 绑定:将 Pod 绑定到最优节点,更新 Pod 的 nodeName

第四步:节点执行

目标节点的 Kubelet:

1. 监听到分配给自己的 Pod

2. 拉取镜像

3. 通过容器运行时创建容器

4. 启动容器

第五步:状态回传

Kubelet 将 Pod 状态更新为 Running,状态通过 API Server 逐级上报:

Pod → ReplicaSet → Deployment → Etcd

更多推荐