Kubernetes主要组件之间的通信原理及创建Pod的过程

一.Kubernetes主要由以下几个核心组件组成
1.etcd:保存了整个集群的状态
2.apiserver:提供了资源操作的唯一入口,并提供认证,授权,访问控制,API注册和发现等机制
3.controller manager:负责监听、维护集群的状态,比如故障检测,自动扩展,滚动更新等
4.scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
5.kubelet:负责维护容器的生命周期,同时也负责Volume和网络的管理
6.Container runtime:负责镜像管理以及Pod和容器的真正运行
7.kube-proxy:负责为Service提供Cluster内部的服务发现和负载均衡

二.组件之间的通信原理
1.apiserver负载etcd存储的所有操作,且只有apiserver才直接操作etcd集群
2.apiserver对内(集群中的其他组件)和对外(用户)提供统一的REST API,其他组件均通过apiserver进行通信
·controller manager、scheduler、kube-proxy和kubelet等均通过apiserver watch API监测资源变化情况,并对资源作相应的操作
·所有需要更新资源状态的操作均通过apiserver的REST API进行
3.apiserver也会直接调用kubelet API(如logs,exec,attach等)

四.典型创建Pod的流程Kubernetes主要组件之间的通信原理及创建Pod的过程_第1张图片
1.用户通过REST API创建一个Pod
2.apiserver将其写入etcd
3.scheduler检测到未绑定Node的Pod,开始调度并更新Pod的Node绑定
4.kubelet检测到有新的Pod调度过来,通过container runtime运行该Pod
5.kubelet通过container runtime取到Pod状态,并更新到apiserver中

你可能感兴趣的:(Kubernetes主要组件之间的通信原理及创建Pod的过程)