Deployment资源部署流程案例

本节将以 Deployment 资源的部署为例,简要阐述 Deployment 对象的部署流程。

在实验过程中,可以使用 kubectl get events --watch 查看部署过程中的事件流,从而可以清楚部署的整体流程。

Deployment部署流程

上图展示了 Deployment 资源的详细部署流程,下面将对其中的几个关键步骤进行解释。

Deployment 控制器生成 ReplicaSet

当 API 服务器在其本地生成了一个 Deployment 资源后,所有监听的 Deployment 控制器会收到通知,然后会按照其定义的 ReplicaSet 的定义清单调用 API 服务器接口创建一个新的 ReplicaSet 资源。

ReplicaSet 控制器创建 Pod

当 API 服务器创建完 ReplicaSet 资源后,所有监听的 ReplicaSet 控制器会收到通知,然后检查其定义,主要考虑 replica 数量 (replicaset.spec.replicas) 、Pod 标签选择器 (replicaset.spec.selector),检查其所能匹配到的 Pod 数量,创建或删除 Pod 以使 Pod 的数量与定义中的 replica 数量一致。

Scheduler 为 Pod 分配调度的 Node

Scheduler 会监控 pod.spec.nodeName 未定义的 Pod,为它们分配最佳 Node。

kubelet 运行容器

kubelet 通过监听 Pod 的变更通知,发现有新的 Pod 分配至该 Node 后,会根据 Pod 的定义调用 Docker 创建容器并运行。

Last updated

Was this helpful?