Kubernetes 中节点的角色

本节介绍 Kubernetes 中 etcd 节点、controlplane 节点和 worker 节点的角色,以及这些角色如何在集群中协同工作。

集群图
Figure 1. 线条表示组件之间的通信。而颜色纯粹用于视觉辅助。

etcd

具有 etcd 角色的节点运行 etcd,这是一个一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后备存储。etcd 将数据复制到每个节点。

具有 etcd 角色的节点在 UI 中显示为不可调度,即默认情况下不会将 Pod 调度到这些节点。

controlplane

具有 controlplane 角色的节点运行 Kubernetes 主组件(不包括 etcd,因为它是一个单独的角色)。有关组件的详细列表,请参阅 Kubernetes:主组件

具有 controlplane 角色的节点在 UI 中显示为不可调度,即默认情况下不会将 Pod 调度到这些节点。

kube-apiserver

Kubernetes API Server (kube-apiserver) 能水平扩展。如果节点具有需要访问 Kubernetes API Server 的组件,则每个具有 controlplane 角色的节点都将被添加到节点上的 NGINX 代理中。这意味着如果一个节点变得不可访问,该节点上的本地 NGINX 代理会将请求转发到列表中的另一个 Kubernetes API Server。

kube-controller-manager

Kubernetes Controller Manager 使用 Kubernetes 中的端点进行 Leader 选举。kube-controller-manager 的一个实例将在 Kubernetes 端点中创建一个条目,并在配置的时间间隔内更新该条目。其他实例将看到一个状态为 Active 的 Leader,并等待该条目过期(例如节点无响应)。

kube-scheduler

Kubernetes 调度器使用 Kubernetes 中的端点进行 Leader 选举。kube-scheduler 的一个实例将在 Kubernetes 端点中创建一个条目,并在配置的时间间隔内更新该条目。其他实例将看到一个状态为 Active 的 Leader,并等待该条目过期(例如节点无响应)。

worker

具有 worker 角色的节点运行 Kubernetes 节点组件。有关组件的详细列表,请参阅 Kubernetes:节点组件