k8s实践3:创建pod流程图示_第1张图片

1.kubectl提交创建pod命令,api响应命令,通过一系列认证授权,把pod数据存储到etcd,创建deployment资源并初始化.                                                            

2.controller通过list-watch机制,监测发现新的deployment,将该资源加入到内部工作队列,发现该资源没有关联的pod和replicaset,启用deployment controller创建replicaset资源,再启用replicaset controller创建pod.

3.所有controller正常后.将deployment,replicaset,pod资源更新存储到etcd.                                                                                                                                
4.scheduler通过list-watch机制,监测发现新的pod,经过主机过滤主机打分规则,将pod绑定(binding)到合适的主机.

5.将绑定结果存储到etcd.                                                                                                                                                                        
6.kubelet每隔 20s(可以自定义)向kube-apiserver通过NodeName 获取自身Node上所要运行的pod清单.通过与自己的内部缓存进行比较,新增加pod.

7.启动pod启动容器.

8.把本节点的容器信息pod信息同步到etcd.