Kubernetes 中节点的角色

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

集群图

线条表示组件之间的通信。而颜色纯粹用于视觉辅助。

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:节点组件