• Master组件

API Server
提供接口,资源增删改查入口。
K8S对外的唯一接口,所有的请求都需要经过这个接口进行通信。主要负责接收、校验并响应所有的REST请求,结果状态被持久存储在etcd当中,所有资源增删改查的唯一入口。

etcd
master的持续状态都存在etcd。
etcd负责保存k8s 集群的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速地通知k8s相关组件。

etcd不仅仅用于提供键值数据存储,而且还为其提供了监听机制,用于监听和推送变更。

Controller Manager
所有资源对象的自动化控制中心。
负责管理集群各种资源,保证资源处于预期的状态。Controller Manager由多种controller组成,包括replication controller、endpoints controller、namespace controller、serviceaccounts controller等 。由控制器完成的主要功能主要包括生命周期功能和API业务逻辑,具体如下:

生命周期功能:包括Namespace创建和生命周期、Event垃圾回收、Pod终止相关的垃圾回收、级联垃圾回收及Node垃圾回收等。
API业务逻辑:例如,由ReplicaSet执行的Pod扩展等。

调度器(Schedule)
负责资源调度。
负责决定将Pod放到哪个Node上运行。Scheduler在调度时会对集群的结构进行分析,当前各个节点的负载,以及应用对高可用、性能等方面的需求。

  • Node组件

Node是工作节点,听从master的工作分配。

Kubelet
Pod容器创建、启停,集群管理等任务。
kubelet是node的agent,当Scheduler确定在某个Node上运行Pod后,会将Pod的具体配置信息(image、volume等)发送给该节点的kubelet,kubelet会根据这些信息创建和运行容器,并向master报告运行状态。

Container Runtime
每个Node都需要提供一个Container Runtime环境,它负责下载镜像并运行容器。像Docker就是一个Container Runtime环境。

Kube-proxy
实现service 的通信与负载均衡组件。
service在逻辑上代表了后端的多个Pod,外界通过service访问Pod。service接收到请求就需要kube-proxy完成转发到Pod的。每个Node都会运行kube-proxy服务,负责将访问的service的数据转发到后端的容器,如果有多个副本,kube-proxy会实现负载均衡。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐