
Master节点

- API Server
Apiserver是整个K8s系统的唯一入口,以RESTful API提供接口服务,并且加上了验证、授权等功能,所有其他组件都只能和它直接通信,可以说是 K8s里的联络员。
- Controller-manager
控制中心,负责维护容器和节点等资源的状态,实现故障检测、服务迁移、应用伸缩等功能。
因为节点状态和Pod信息都存储在etcd里,所以要通过apiserver获得信息,才能够实现对资源的各种操作。
- Scheduler
调度器,负责容器的编排工作,检查节点的资源状态,把Pod调度到最适合的节点上运行。
- Etcd
是一个高可用的分布式Key-Value数据库,用来持久化存储系统里的各种资源对象和状态。
注意它只与apiserver有直接联系,也就是说任何其他组件想要读写etcd里的数据都必须经过apiserver。
Node节点

- Kubelet
是Master在Node节点上的Agent,通过指挥容器引擎实现管理本机运⾏容器,⽐如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等⼯作。
- Kube-proxy
在Node节点上实现Pod⽹络代理,维护⽹络规则和四层负载均衡⼯作。
- Container-runtime
容器运行时,即容器引擎,例如docker、containerd、podman。是容器和镜像的实际使用者,在 kubelet 的指挥下创建容器,管理Pod的生命周期。