图解流程:一个 Pod 究竟是怎样被 K8s 创建出来的?

将 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来说过程一样,不过是相反。

来源:本文转自公众号 Kubernetes 生态圈,https://tinyurl.com/y3cmm8ba

近期好文:

线上问题排查:记一次 Redis Cluster Pipeline 导致的死锁问题

“高效运维”公众号诚邀广大技术人员投稿

投稿邮箱:jiachen@greatops.net,或添加联系人微信:greatops1118。
点个“在看”,一年不宕机

标签

发表评论