本文提供範例,說明如何設定 Google Distributed Cloud 叢集,以使用 VM 主機親和性。
VM-Host Group 親和性是 Google Distributed Cloud 提供的機制之一,可確保高可用性。使用 VM-Host Group 親和性,建立實體 ESXi 主機群組。接著,設定叢集,將 VM 群組與主機群組建立關聯。
舉例來說,您可以將一個節點集區中的所有 VM 設定為在特定主機群組上執行。您也可以將第二個節點集區中的所有 VM 設定為在不同的主機群組上執行。然後將每個節點集區視為故障網域。如要區分失敗網域,可以為各節點集區中的 VM 新增標籤。
進階叢集不支援使用 VM 主機群組親和性。
事前準備
如要進行這項練習,vSphere 環境中必須至少有六部 ESXi 主機。
建立主機群組
在 vSphere 環境中建立兩個以上的主機 DRS 群組。在本練習中,兩個主機群組,每個群組有三部主機,就已足夠。如需操作說明,請參閱「建立主機 DRS 群組」。
建立使用者叢集
本節提供範例,說明如何建立使用 VM 主機群組親和性的使用者叢集。本範例中的叢集使用 Controlplane V2。叢集具有高可用性控制層,因此有三個控制層節點。除了控制層節點外,還有六個工作節點:一個節點集區中有三個,第二個節點集區也有三個。所有節點都使用靜態 IP 位址。
首先,請按照「建立使用者叢集」一文的說明操作。
填寫使用者叢集設定檔時,請注意下列事項:
- 為工作站節點指定兩個節點集區。針對每個節點集區,將
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,因此會有三個控制層節點。叢集控制器會建立 VM DRS 群組,其中包含
worker-pool-1節點集區中的三個節點。控制器也會建立VM-Host 相依性規則,確保worker-pool-1中的節點會在hostgroup-1中的主機上執行。worker-pool-1中的節點具有標籤failuredomain: "failuredomain-1"叢集控制器會建立 VM DRS 群組,其中包含
worker-pool-2節點集區中的三個節點。控制器也會建立 VM 主機親和性規則,確保worker-pool-2中的節點會在hostgroup-2中的主機上執行。worker-pool-2中的節點具有標籤failuredomain: "failuredomain-2"
按照「建立使用者叢集」一文的說明,繼續建立使用者叢集。