
文章插图
6. 当创建一个新的Pod时会发生什么?

文章插图
7. 你已经知道Kubernetes如何创建Pod并传播端点信息了 。

文章插图
8. Ingress控制器订阅对端点的更改 。由于有一个新的变化,它会获取新的端点列表 。

文章插图
9. Ingress控制器将流量路由到新的Pod上 。

文章插图
还有其他订阅端点更改的Kubernetes组件的示例 。
集群中的DNS组件CoreDNS就是其中之一 。
如果你使用Headless类型的Service,CoreDNS将需要订阅端点的更改,并在每次添加或删除端点时重新配置自身 。
同样,服务网格(如Istio或Linkerd)、云服务提供商用于创建类型为LoadBalancer的服务 , 以及无数的操作员都会使用这些端点 。
你必须记?。?有多个组件订阅端点的更改,它们可能在不同的时间接收到关于端点更新的通知 。
这就足够了 , 或者还有在创建Pod后发生的事情吗?
创建Pod时发生的主要步骤的简要回顾:
- Pod被存储在etcd中 。
- 调度器分配一个节点,并将该节点写入etcd 。
- kubelet收到新的已调度Pod的通知 。
- kubelet将创建容器的任务委托给容器运行时接口(CRI) 。
- kubelet将容器连接到容器网络接口(CNI)的任务委托给它 。
- kubelet将容器中的挂载卷的任务委托给容器存储接口(CSI) 。
- 容器网络接口分配一个IP地址 。
- kubelet将IP地址报告给控制平面 。
- IP地址被存储在etcd中 。
- kubelet等待成功的就绪探针(Readiness probe) 。
- 所有相关的端点(对象)都会收到变更的通知 。
- 端点将新的端点(IP地址+端口对)添加到它们的列表中 。
- Kube-proxy收到端点变更的通知 。Kube-proxy在每个节点上更新iptables规则 。
- Ingress控制器收到端点变更的通知 。控制器将流量路由到新的IP地址上 。
- CoreDNS收到端点变更的通知 。如果Service的类型是Headless,DNS条目将被更新 。
- 云服务提供商收到端点变更的通知 。如果Service的类型是LoadBalancer,新的端点将作为负载均衡池的一部分进行配置 。
- 集群中安装的任何服务网格都会收到端点变更的通知 。
- 任何订阅端点变更的其他操作员也会收到通知 。
Pod已经运行起来了 。现在是时候讨论一下当你删除Pod时会发生什么了 。
删除Pod你可能已经猜到了,但是当删除Pod时,你需要按照相同的步骤但是逆序进行操作 。
首先,应该从Endpoint(对象)中移除端点 。
这次Readiness probe会被忽略 , 并且端点会立即从控制平面中删除 。
这反过来会触发kube-proxy、Ingress控制器、DNS、服务网格等所有事件 。
这些组件将更新其内部状态,并停止将流量路由到该IP地址 。
由于这些组件可能正在执行其他操作,无法保证从其内部状态中删除IP地址需要多长时间 。对于某些组件来说,可能只需要不到一秒的时间;而对于其他组件来说,可能需要更长的时间 。
对一些来说 , 这可能只需要不到一秒钟;对其他来说,这可能需要更多 。
1. 如果你使用kubectl delete pod删除一个Pod,该命令首先会发送到Kubernetes API 。

文章插图
2. 该消息会被控制平面中的特定控制器——Endpoint控制器所拦截 。

文章插图
3. Endpoint控制器向API发送命令,将IP地址和端口从Endpoint对象中移除 。
推荐阅读
- ps出血位怎么做,PS中的出血线该怎样使设置
- CDR怎么裁剪圆形,cdr中的裁剪工具要怎样使用
- 五禽戏功效,五禽戏中的熊戏是由什么构成的
- cdr中的剪切蒙版要怎样使用,ai释放剪切蒙版快捷键是什么
- 脚注上面的横线能怎样加,word中的脚注上的横线怎么调整长度
- 狱中的吴亦凡?搬家逃债的郑爽?被抵制的AB?47岁露脸的赵薇?
- 7个方法增加头发中的黑色素以防止过早变白
- 在应酬中要注意哪些问题 应酬中的要注意哪些行为举止
- 《外来媳妇本地郎》中的由美已回归生活,现实中的她当上音乐教授
- 何润东老婆有多美?自信优雅似模特,颜值不输圈内一线明星
