Appearance
pod的创建流程
1:执行 kubectl create -f nginx-deploy yaml → kubectl 向 kube-apiserver 发起创建请求;
2:kube-apiserver 完成「认证/授权」后,将Deployment 的「期望状态」(比如3个副本)写入etcd,并返回创建成功;
3:kube-controler-manager 中的 Deployment 控制器,通过apiserver 发现新的 Deployment,自动创建对应的 ReplicaSet;
4:eplicaSet 控制器发现「期望3个Pod,实际0个」,通过 apiserver 创建3个Pod 的资源对象,写入etcd:
5:kube-scheduler 监听 apiserver,发现3个[待调度的 Pod」,为每个Pod 筛选并打分,选出最合 适的 Node 节点,将调度结果(Pod 绑定到哪个Node)更新到etcd;
6:对应 Node节点上的 kubelet,通过apiserver 发现「自己被分配了Pod」,调用容器运行时(Docker/containerd)创建 Pod,Pod 启动成功后,kubelet 将 Pod的「实际运行状态」上报给 apiserver,apiserver 更新到 etcd; pn
7: kube-proxy 监控到 Pod 创建后,更新本地的 iptables/ipvs 规则,让 Service 可以转发流量到新Pod;
后续如果某个Pod宕机
→ ReplicaSet控制器发现「实际2个Pod+期望 3个」
→自动创建新Pod
→ scheduler 重新调度
→ kubelet 创建 Pod,完成自愈。