所有的Kubernetes组件Controller, Scheduler, Kubelet都使用Watch机制来监听API Server,来获取对象变化的事件
用户通过Kubectl提交Pod Spec给API Server;
API Server将Pod对象的信息存入Etcd中
Pod的创建会生成一个事件,返回给API Server
Controller监听到这个事件
Controller知道这个Pod要mount一个盘,于是查看是否有能够满足条件的PV
假设有满足条件的PV,就将Pod和PV绑定在一起,将绑定关系告知API Server
API Server将绑定信息写入Etcd中
生成一个Pod Update事件
Scheduler监听到了这个事件
Scheduler需要为Pod选择一个Node
假设有满足条件的Node,就讲Pod和Node绑定在一起,将绑定关系告知API Server
API Server将绑定信息写入Etcd中
生成一个Pod Update事件
Kubelet监听到了这个事件,开始创建Pod
Kubelet告知CRI去下载镜像
Kubelet告知CRI去运行容器
CRI调用Docker运行容器
Kubelet告知Volume Manager,将盘挂载到Node上,然后mount到Pod中
CRI调用CNI给容器配置网络
Kubelet是一切容器 feature的落地点
所有的组件只与apiserver交互,不直接互通,更不直接控制kubelet 做某事
领取专属 10元无门槛券
私享最新 技术干货