将 Pod 部署运行在 Kubernetes 内,前几个步骤你可能很熟悉
1、kubectl 将 YAML 发送到 API
2、Pod 存储在 etcd 中
3、调度程序分配一个节点(此时Pod配置清单文件存储在etcd中,节点内并没有该pod)
4、kubelet 开始创建 Pod
5、kubelet 将创建容器的委托委派给 CRI
6、kubelet 代表将容器连接到 CNI 的网络
7、CNI分配一个IP地址
8、检查探针
9、kubelet 将 IP 地址报告给控制平面
此时 Pod 就已经创建完成了,除非 Pod 是服务的一部分,否则 Kubernetes 会在此处停止。如果 Pod 属于服务,Kubernetes 会创建一个端点 endpoint - 它连接 Pod 的 IP 地址和端口(targetPort)。将端点 endpoint 添加到端点(对象object)。
这些端点将会用于以下:
- kube-proxy设置iptables规则
- CoreDNS更新DNS条目
- Ingress入口控制器设置下游服务downstreams
- Service meshes
- More operators其他运营商
就这样,完成一个Pod的创建和发布,对于删除Pod来说过程一样,不过是相反。