本文档介绍如何规划 IP 地址以安装 Anthos clusters on VMware (GKE On-Prem)。
准备工作
阅读 Anthos clusters on VMware 概览和安装概览。
IP 地址分配示例
本部分介绍如何在包含以下元素的安装中分配静态 IP 地址:
一个管理员工作站
一个管理员集群
一个具有五个工作器节点的高可用性 (HA) 用户集群
一个具有四个工作器节点的非 HA 用户集群
管理员集群节点
对于具有七个节点的管理员集群,您需要预留八个 IP 地址。额外的地址是必需的,因为在集群升级、更新和自动修复期间需要用到它。例如,您可以为管理员集群中的节点预留以下 IP 地址:
- 一个运行管理员集群的控制层面的节点
- 两个运行管理员集群插件的节点
- 三个运行 HA 用户集群控制层面的节点
- 一个运行非 HA 用户集群的控制层面的节点
- 一个在升级、更新和自动修复期间使用的临时节点
负载均衡
在本示例中,假设集群使用 MetalLB 负载均衡器。此负载均衡器在集群节点上运行,因此无需额外的虚拟机即可实现负载均衡。
子网
对于此示例,假设每个集群位于自己的 VLAN 上,并且集群位于以下子网中:
虚拟机 | 子网 | 默认网关 |
---|---|---|
管理员工作站和管理员集群 | 172.16.20.0/24 | 172.16.20.1 |
用户集群 1 | 172.16.21.0/24 | 172.16.21.1 |
用户集群 2 | 172.16.22.0/24 | 172.16.22.1 |
下图演示了三个 VLAN 和子网。请注意,VIP 未显示与集群中的任何特定节点相关联。这是因为 MetalLB 负载均衡器可以选择哪个节点公布单个 Service 的 VIP。例如,在用户集群 1 中,一个工作器节点可以公布 172.16.21.31,另一个工作器节点可以公布 172.16.21.32。
IP 地址示例:管理员工作站
在本示例中,管理员工作站与管理员集群位于同一子网中:172.16.20.0/24。节点地址附近的地址适合管理员工作站。例如:172.16.20.20。
示例 IP 地址:管理员集群节点
下表举例说明了如何将 IP 地址用于管理员集群中的节点。该表显示了一个额外的节点:admin-vm-8。这是在集群升级期间需要使用的额外节点。如需了解详情,请参阅管理节点 IP 地址。
虚拟机主机名 | 说明 | IP 地址 |
---|---|---|
admin-vm-1 | 管理员集群控制平面节点 | 172.16.20.2 |
admin-vm-2 | 管理员集群插件节点 | 172.16.20.3 |
admin-vm-3 | 管理员集群插件节点 | 172.16.20.4 |
admin-vm-4 | 用户集群 1 的控制层面节点。 此节点位于管理员集群中。 |
172.16.20.5 |
admin-vm-5 | 用户集群 1 的控制层面节点。 此节点位于管理员集群中。 |
172.16.20.6 |
admin-vm-6 | 用户集群 1 的控制层面节点。 此节点位于管理员集群中。 |
172.16.20.7 |
admin-vm-7 | 用户集群 2 的控制层面节点 此节点位于管理员集群中。 |
172.16.20.8 |
admin-vm-8 | 172.16.20.9 |
示例 IP 地址:管理员集群子网中的 VIP 地址
下表示例演示了如何为管理员集群的负载均衡器指定 VIP 地址。请注意,用户集群的 Kubernetes API 服务器的 VIP 必须位于管理员集群子网上。这是因为用户集群的 Kubernetes API 服务器在管理员集群中的节点上运行。请注意,在集群配置文件中,用于为 Kubernetes API 服务器指定 VIP 的字段称为 controlPlaneVIP
:
VIP | IP 地址 |
---|---|
管理员集群的 Kubernetes API 服务器的 VIP 地址 | 172.16.20.30 |
管理员集群插件 VIP | 172.16.20.31 |
用户集群 1 的 Kubernetes API 服务器的 VIP 地址 | 172.16.20.32 |
用户集群 2 的 Kubernetes API 服务器的 VIP 地址 | 172.16.20.33 |
示例 IP 地址:用户集群 1 节点
下表举例说明了如何将 IP 地址用于用户集群 1 中的节点。该表显示了一个额外的节点:user-1-vm-6。在集群升级、更新和自动修复期间需要额外的 IP 地址。如需了解详情,请参阅管理节点 IP 地址。
虚拟机主机名 | 说明 | IP 地址 |
---|---|---|
user-1-vm-1 | 用户集群工作器节点 | 172.16.21.2 |
user-1-vm-2 | 用户集群工作器节点 | 172.16.21.3 |
user-1-vm-3 | 用户集群工作器节点 | 172.16.21.4 |
user-1-vm-4 | 用户集群工作器节点 | 172.16.21.5 |
user-1-vm-5 | 用户集群工作器节点 | 172.16.21.6 |
user-1-vm-6 | 172.16.21.7 |
示例 IP 地址:用户集群 1 子网中的 VIP 地址
下表举例说明了如何为用户集群 1 指定要在负载均衡器上配置的 VIP 地址:
VIP | 说明 | IP 地址 |
---|---|---|
用户集群 1 的 Ingress VIP 地址 | 在负载均衡器上为用户集群 1 配置 | 172.16.21.30 |
用户集群 1 的 Service VIP 地址 | LoadBalancer 类型的 Service 的 10 个地址。根据需要在负载均衡器上为用户集群 1 配置。 请注意,此范围包含 Ingress VIP 地址。 这是 MetalLB 负载均衡器的要求。 |
172.16.21.30 - 172.16.21.39 |
示例 IP 地址:用户集群 2 节点
下表举例说明了如何将 IP 地址用于用户集群 2 中的节点。该表显示了一个额外的节点:user-2-vm-5。在集群升级、更新和自动修复期间需要额外的 IP 地址。如需了解详情,请参阅管理节点 IP 地址。
虚拟机主机名 | 说明 | IP 地址 |
---|---|---|
user-2-vm-1 | 用户集群工作器节点 | 172.16.22.2 |
user-2-vm-2 | 用户集群工作器节点 | 172.16.22.3 |
user-2-vm-3 | 用户集群工作器节点 | 172.16.22.4 |
user-2-vm-4 | 用户集群工作器节点 | 172.16.22.5 |
user-2-vm-5 | 172.16.22.6 |
示例 IP 地址:用户集群 2 子网中的 VIP 地址
下表举例说明了如何为用户集群 2 指定要在负载均衡器上配置的 VIP 地址:
VIP | 说明 | IP 地址 |
---|---|---|
用户集群 2 的 Ingress VIP 地址 | 在负载均衡器上为用户集群 2 配置 | 172.16.22.30 |
用户集群 2 的 Service VIP 地址 | LoadBalancer 类型的 Service 的 10 个地址。根据需要在负载均衡器上为用户集群 2 配置。 请注意,此范围包含 Ingress VIP 地址。 这是 MetalLB 负载均衡器的要求。 |
172.16.22.30 - 172.16.22.39 |
示例 IP 地址:Pod 和服务
在创建集群之前,您必须指定用于 Pod IP 地址的 CIDR 范围以及用于 Kubernetes Service 的 ClusterIP
地址的另一个 CIDR 范围。
确定要用于 Pod 和 Service 的 CIDR 范围。例如:
用途 | CIDR 范围 |
---|---|
管理员集群中的 Pod | 192.168.0.0/16 |
用户集群 1 中的 Pod | 192.168.0.0/16 |
用户集群 2 中的 Pod | 192.168.0.0/16 |
管理员集群中的 Service | 10.96.232.0/24 |
用户集群 1 中的 Service | 10.96.0.0/20 |
用户集群 2 中的 Service | 待办 |
上述示例阐述了以下要点:
多个集群的 Pod CIDR 范围可以相同。
通常,您需要的 Pod 多于 Service,因此对于一个给定集群,Pod CIDR 范围应该要大于 Service CIDR 范围。例如,用户集群的默认 Pod 范围为 192.168.0.0/16,地址数为 2^(32-16) = 2^16 个。但用户集群的默认 Service 范围为 10.96.0.0/20,地址数仅为 2^(32-20) = 2^12 个。
避免重叠
您可能希望使用非默认 CIDR 范围以避免与网络中可访问的 IP 地址重叠。Service 和 pod 范围不得与您要从集群内部访问的任何集群外部地址重叠。
例如,假设您的 Service 范围为 10.96.232.0/24,您的 Pod 范围为 192.168.0.0/16 (192.168.0.1 - 192.168.255.254)。从 Pod 发送到上述任一范围中的地址的任何流量都将被视为集群内的流量,并且不会到达集群外部的任何目的地。
具体来说,Service 和 pod 范围不得与以下各项重叠:
任何集群中节点的 IP 地址
负载均衡器使用的 IP 地址
控制平面节点和负载均衡器使用的 VIP 地址
vCenter 服务器、DNS 服务器和 NTP 服务器的 IP 地址
我们建议您的 Service 和 Pod 范围位于 RFC 1918 专用地址空间中。
以下是建议使用 RFC 1918 地址的一个原因。假设您的 Pod 或 Service 范围包含外部 IP 地址。从 Pod 发送到其中一个外部地址的任何流量都将被视为集群内流量,并且不会到达外部目标。
DNS 服务器和默认网关
在填写配置文件之前,您必须知道管理员工作站和集群节点可以使用的 DNS 服务器的 IP 地址。
您还必须知道每个子网的默认网关的 IP 地址。在前面的示例中,每个子网的默认网关是范围内的第一个地址。例如,在管理员集群的子网中,默认网关显示为 172.16.20.1。