下面的例子显示了cluster.yml中的节点配置:

您可以指定您希望节点作为 Kubernetes 集群的一部分的角色列表。支持的角色有三种:controlplaneetcdworkercontrolplaneetcdworker。节点角色不是相互排斥的。可以将任意角色组合分配给任何节点。也可以通过升级过程改变节点的角色。

有了这个角色,etcd容器就会在这些节点上运行。Etcd 保存着您的集群的状态,是您集群中最重要的组件,是您集群的单一真相来源。虽然您可以只在一个节点上运行 etcd,但通常需要 3 个、5 个或更多的节点来创建一个 HA 配置。Etcd 是一个分布式的可靠键值存储,它存储了所有 Kubernetes 的状态。在节点上设置污点etcd角色如下图所示。

Controlplane

通过这个角色,用于部署 Kubernetes 的无状态组件将在这些节点上运行。这些组件用于运行 API 服务器、调度器和控制器。在节点上设置的污点](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)与**controlplane**角色如下图所示。%E4%B8%8Econtrolplane%E8%A7%92%E8%89%B2%E5%A6%82%E4%B8%8B%E5%9B%BE%E6%89%80%E7%A4%BA%E3%80%82)

Taint KeyTaint ValueTaint Effect
node-role.kubernetes.io/controlplanetrueNoSchedule

Worker

有了这个角色,部署的任何工作负载或豆荚都会落在这些节点上。

Address

address用于设置节点的主机名或 IP 地址。RKE 必须能够连接到这个地址。

Internal Address

internal_address提供了让具有多个地址的节点设置一个特定的地址用于私有网络上的主机间通信的能力。如果没有设置internal_address,则使用address进行主机间通信。internal_address指令将设置用于 Kubernetes 组件的主机间通信的地址,例如 kube-apiserver 和 etcd。要改变 Canal 或 Flannel 网络插件的 vxlan 流量使用的接口,请参考网络插件文档

hostname_override用于能够提供一个友好的名称,供 RKE 在 Kubernetes 中注册节点时使用。这个 hostname 不需要是可路由地址,但必须是一个有效的。如果没有设置hostname_override,那么在 Kubernetes 中注册节点时就会使用指令。

SSH Port

在每个节点中,您可以指定连接到这个节点时要使用的端口。默认的端口是22

SSH Users

对于每个节点,您指定连接到这个节点时要使用的user。这个用户必须是 Docker 组的成员,或者允许向节点的 Docker 套接字写入。

SSH Key Path

**注意:**如果您有一个可以在所有节点上使用的私钥,您可以设置。每个节点中设置的 SSH 密钥路径总是优先的。

SSH Key

您可以不设置 SSH 密钥的路径,而是指定实际的密钥,即ssh_key,用来连接到节点。

对于每个节点,您可以指定路径,即ssh_cert_path,用于连接到这个节点时要使用的签名 SSH 证书。

SSH Certificate

您可以指定实际的证书,即ssh_cert,用来连接到节点,而不是设置签名的 SSH 证书的路径。

Docker Socket

如果 Docker 套接字和默认的不一样,您可以设置docker_socket。默认是/var/run/docker.sock

Labels

Taints

您能够为每个节点添加。