Deployment资源部署流程案例
Last updated
Was this helpful?
Last updated
Was this helpful?
本节将以 Deployment 资源的部署为例,简要阐述 Deployment 对象的部署流程。
在实验过程中,可以使用 kubectl get events --watch
查看部署过程中的事件流,从而可以清楚部署的整体流程。
上图展示了 Deployment 资源的详细部署流程,下面将对其中的几个关键步骤进行解释。
当 API 服务器在其本地生成了一个 Deployment 资源后,所有监听的 Deployment 控制器会收到通知,然后会按照其定义的 ReplicaSet 的定义清单调用 API 服务器接口创建一个新的 ReplicaSet 资源。
当 API 服务器创建完 ReplicaSet 资源后,所有监听的 ReplicaSet 控制器会收到通知,然后检查其定义,主要考虑 replica 数量 (replicaset.spec.replicas
) 、Pod 标签选择器 (replicaset.spec.selector
),检查其所能匹配到的 Pod 数量,创建或删除 Pod 以使 Pod 的数量与定义中的 replica 数量一致。
Scheduler 会监控 pod.spec.nodeName
未定义的 Pod,为它们分配最佳 Node。
kubelet 通过监听 Pod 的变更通知,发现有新的 Pod 分配至该 Node 后,会根据 Pod 的定义调用 Docker 创建容器并运行。