一文了解 Kubernetes 中创建Pod详细流程

本文以创建无状态应用为例,详细剖析Pod从无到有的整个事件链。
一文了解 Kubernetes 中创建Pod详细流程_第1张图片

1.Deployment控制器生成ReplicaSet

当新创建Deployment资源时, 所有通过API服务器监听机制监听Deployment列表的客户端马上会收到通知。
其中有个客户端叫Deployment控制器,一个Deployment由 一个或多个Replicaset支持,ReplicaSet后面会创建实际的pod。当Deployment控制器检查到有一个新的Deployment对象时,会按照Deploymnet当前定义创建 ReplicaSet。这包括通过Kubemetes API创建 一个新的ReplicaSet资源。Deployment控制器完全不会去处理单个pod。

2.ReplicaSet控制器创建pod资源

新创建的ReplicaSet由ReplicaSet控制器接收。然后控制器会基于ReplicatSet的pod模板创建pod资源。

3.调度器分配节点给新创建的pod

新创建的pod目前保存在etcd中,但是它们每个都缺少一个重要的东西-它们还没有任何关联节点。它们的nodeName属性还未被设置。调度器会监控像这样的pod, 发现一个,就会为pod选择最佳节点,并将节点分配给 pod。pod的定义现在就会包含它应该运行在哪个节点。

4.Kubelet运行pod容器

随着pod目前分配给了特定的节点,节点上的Kubelet终于可以工作了。Kubelet通过API服务器监听pod变更,发现有新的pod分配到本节点后,会去检查pod定义,然后命令Docker或者任何使用的容器运行时来启动pod容器,容器运行时就会去运行容器。

你可能感兴趣的:(kubernetes,docker,kubernetes)