本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

推荐的集群架构

可以分配给节点的角色有三种:etcdcontrolplaneworker

将工作节点与其他角色的节点分开

在设计集群时,您有两种选择:

  • 为每个角色使用专用节点。这确保了所需角色组件的资源可用性。它还根据 端口要求 严格隔离各角色之间的网络流量。

  • etcdcontrolplane 角色分配给相同的节点。这些节点必须满足两个角色的硬件要求。

在任何情况下,worker 角色不应被用于或添加到具有 etcdcontrolplane 角色的节点上。

因此,每个节点应具有以下角色配置之一:

  • etcd

  • controlplane

  • 同时具有 etcdcontrolplane

  • worker

集群应具有:

  • 至少三个具有 etcd 角色的节点,以便在失去一个节点时仍能存活。增加此数量以提高节点容错,并将它们分布在(可用性)区域,以提供更好的容错。

  • 至少两个具有 controlplane 角色的节点,以确保主组件的高可用性。

  • 至少两个具有 worker 角色的节点,以便在节点故障时进行工作负载的重新调度。

有关每个角色的用途的更多信息,请参阅Kubernetes中节点的角色部分。

控制平面节点数量

添加多个具有`controlplane`角色的节点可使每个主组件具备高可用性。

etcd节点数量

在保持集群可用性的情况下,您可以同时失去的节点数量由分配了`etcd`角色的节点数量决定。对于具有n个成员的集群,最小值为(n/2)+1。因此,我们建议在一个区域内的3个不同可用区创建一个`etcd`节点,以应对一个可用区的损失。如果您只使用两个可用区,您只能在不失去大多数节点的可用区中生存。

具有`etcd`角色的节点 多数 容错

1

1

0

2

2

0

3

2

1

4

3

1

5

3

2

6

4

2

7

4

3

8

5

3

9

5

4

参考:

工作节点数量

添加多个具有`worker`角色的节点将确保如果某个节点失败,您的工作负载可以重新调度。

为什么Rancher集群和运行您应用程序的集群的生产要求不同

您可能已经注意到我们的Kubernetes安装说明不符合我们对可用于生产用途集群的定义,因为没有专用节点用于`worker`角色。然而,对于您的Rancher安装,这个三节点集群是有效的,因为:

  • 它允许一个`etcd`节点故障。

  • 通过拥有多个`controlplane`节点,它维护主组件的多个实例。

  • 在这个集群上不应创建除Rancher本身之外的其他工作负载。

参考资料