k8s核心组件

Master节点

Master架构图

  • API Server

​ Apiserver是整个K8s系统的唯一入口,以RESTful API提供接口服务,并且加上了验证、授权等功能,所有其他组件都只能和它直接通信,可以说是 K8s里的联络员。

  • Controller-manager

​ 控制中心,负责维护容器和节点等资源的状态,实现故障检测、服务迁移、应用伸缩等功能。

​ 因为节点状态和Pod信息都存储在etcd里,所以要通过apiserver获得信息,才能够实现对资源的各种操作。

  • Scheduler

​ 调度器,负责容器的编排工作,检查节点的资源状态,把Pod调度到最适合的节点上运行。

  • Etcd

​ 是一个高可用的分布式Key-Value数据库,用来持久化存储系统里的各种资源对象和状态。

​ 注意它只与apiserver有直接联系,也就是说任何其他组件想要读写etcd里的数据都必须经过apiserver。

Node节点

Node节点架构图

  • Kubelet

​ 是Master在Node节点上的Agent,通过指挥容器引擎实现管理本机运⾏容器,⽐如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等⼯作。

  • Kube-proxy

​ 在Node节点上实现Pod⽹络代理,维护⽹络规则和四层负载均衡⼯作。

  • Container-runtime

​ 容器运行时,即容器引擎,例如docker、containerd、podman。是容器和镜像的实际使用者,在 kubelet 的指挥下创建容器,管理Pod的生命周期。