参考视频:https://ke.qq.com/user/index/index.html#/plan/cid=1709963&term_id=102815140

一、流程图

Kubernetes基于list-watch机制的控制器架构,实现组件间交互的解耦。
在这里插入图片描述

二、具体过程

0.kubectl apply -f pod.yaml

1.kubectl将yaml转换为json,提交给apiserver,apiserver通过kubeconfig进行认证,将Pod信息存储到etcd中

2.scheduler通过list watch机制监听到创建新Pod的事件,根据Pod属性与调度算法决定调度到哪个Node上,Pod属性包括请求的CPU/内存大小、nodeSelector、亲和性、污点容忍等,同时给Pod打标签指明调度到具体哪个节点,可以通过kubectl get pod -owide查看

3.apiserver拿到调度结果并写入到etcd中

4.kubelet从apiserver获取分配到其所在节点的Pod

5.kubelet调用CNI接口创建Pod网络,调用CSI进行存储卷挂载,调用CRI接口启动容器

6.Docker把容器的状态汇报给kubelet

7.kubelet将Pod状态更新到apiserver,apiserver将状态信息写到etcd中

8.kubectl get pod

三、Pod事件

在这里插入图片描述
从事件可以看到首先会把Pod调度到Node,其次拉取镜像,最后创建并启动容器

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐