kubernetes中创建pod的流程

avatar 2021年5月13日18:02:53 评论 1,012 次浏览

在kubernetes中,pod是最小的单元,如何理解最小单元,就比如我们说的人民币,人民币的最新单元是多少,厘,厘是人民币的最小单元,虽然现在很少了,但是也是有的,pod就相当于人民币的厘。pod中是有容器组成的,可以有多个容器,容器的数量我们称之为副本,副本可以理解为服务。比如在一个集群中,我们的集群对外有一个负载均衡的ip,通过负载均衡的ip地址轮训请求到每个节点上的服务,在kubernetes中,pod上一层的service就可以理解为负载均衡,因为service的ip地址是不变的,每个pod都有一个自己的service。这对pod有一个大大致的了解了,下面我们看看pod创建流程。

注解:

1.用户通过kubectl命名发起请求。
2.apiserver通过对应的kubeconfig进行认证,认证通过后将yaml中的po信息存到etcd。
3. Controller-Manager通过apiserver的watch接口发现了pod信息的更新,执行该资源所依赖的拓扑结构整合,整合后将对应的信息写到etcd,此时pod已经可以被调度了。
4.Scheduler同样通过apiserver的watch接口更新到pod可以被调度,通过算法给pod分配节点,并将pod和对应节点绑定的信息写到etcd,然后将pod交给kubelet。
5.kubelet收到pod后,调用CNI接口给pod创建pod网络,调用CRI接口去启动容器,调用CSI进行存储卷的挂载。
6.网络,容器,存储创建完成后pod创建完成,等业务进程启动后,pod运行成功。

以上就是在kubernetes中创建pod的流程,pod创建好以后需要对外提供服务,我们需要了解公网请求pod的过程,下一章了解一下。下面那创建nginx做一个例子,看一下示例图:

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: