本文档举例说明了如何将 GKE on VMware 集群配置为使用虚拟机-主机亲和性。
虚拟机-主机组亲和性是 GKE on VMware 提供的用于确保高可用性的机制之一。通过虚拟机主机组亲和性,您可以创建物理 ESXi 主机组。然后,配置集群以将虚拟机组与主机组相关联。
例如,您可以将一个节点池中的所有虚拟机配置为在特定主机组上运行。您可以将第二个节点池中的所有虚拟机配置为在其他主机组上运行。然后,您可以将每个节点池视为故障域。为了区分故障网域,您可以为各个节点池中的虚拟机添加标签。
准备工作
在本练习中,您的 vSphere 环境中至少需要有六个 ESXi 主机。
创建主机组
在 vSphere 环境中创建两个或更多主机 DRS 组。在本练习中,最好有两个主机组,每个主机组有三个主机。如需了解相关说明,请参阅创建主机 DRS 组。
创建用户集群
本部分举例说明了如何创建使用虚拟机-主机组亲和性的用户集群。此示例中的集群使用控制平面 V2。该集群具有高可用性控制平面,因此有三个控制平面节点。除了控制平面节点之外,还有六个工作器节点:三个位于一个节点池中,三个位于第二个节点池中。所有节点均使用静态 IP 地址。
首先按照创建用户集群(控制平面 V2)中的说明执行操作。
填写用户集群配置文件时:
- 为工作器节点指定两个节点池。对于每个节点池,将
replicas
设置为3
,并提供现有主机组的名称。
示例配置文件
以下是一个 IP 地址块文件和一个用户集群配置文件一部分的示例。
user-ipblock.yaml
blocks: - netmask: 255.255.255.0 gateway: 172.16.21.1 ips: - ip: 172.16.21.2 - ip: 172.16.21.3 - ip: 172.16.21.4 - ip: 172.16.21.5 - ip: 172.16.21.6 - ip: 172.16.21.7 - ip: 172.16.21.8
user-cluster-yaml
apiVersion: v1 kind: UserCluster ... network: hostConfig: dnsServers: - "203.0.113.2" - "198.51.100.2" ntpServers: - "216.239.35.4" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" controlPlaneIPBlock: netmask: "255.255.255.0" gateway: "172.16.21.1" ips: - ip: "172.16.21.9" hostname: "cp-vm-1" - ip: "172.16.21.10" hostname: "cp-vm-2" - ip: "172.16.21.11" hostname: "cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" ingressVIP: "172.16.21.30" kind: MetalLB metalLB: addressPools: - name: "address-pool-1" addresses: - "172.16.21.30-172.16.21.39" ... enableControlplaneV2: true masterNode: cpus: 4 memoryMB: 8192 replicas: 3 nodePools: - name: "worker-pool-1" enableLoadBalancer: true replicas: 3 vsphere: hostgroups: - "hostgroup-1" labels: failuredomain: "failuredomain-1" - name: "worker-pool-2" replicas: 3 vsphere: hostgroups: - "hostgroup-2" labels: failuredomain: "failuredomain-2" ...
以下是在上述示例中要理解的要点:
工作器节点的静态 IP 地址在 IP 地址块文件中指定。即使只有六个工作器节点,IP 地址块文件也包含七个地址。在集群升级、更新和自动修复期间需要额外的 IP 地址。
三个控制平面节点的静态 IP 地址在用户集群配置文件的
network.controlPlaneIPBlock
部分中指定。此块中不需要额外的 IP 地址。masterNode.replicas
字段设置为3
,因此将有三个控制平面节点。集群控制器将创建一个虚拟机 DRS 组,其中包含
worker-pool-1
节点池中的三个节点。控制器还将创建虚拟机-主机亲和性规则,以确保worker-pool-1
中的节点将在hostgroup-1
中的主机上运行。worker-pool-1
中的节点具有failuredomain: "failuredomain-1"
标签集群控制器将创建一个虚拟机 DRS 组,其中包含
worker-pool-2
节点池中的三个节点。控制器还将创建虚拟机-主机亲和性规则,以确保worker-pool-2
中的节点将在hostgroup-2
中的主机上运行。worker-pool-2
中的节点具有failuredomain: "failuredomain-2"
标签
继续按照创建用户集群 (Controlplane V2) 中所述创建用户集群。