本文提供範例,說明如何設定 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"
按照「建立使用者叢集」一文的說明,繼續建立使用者叢集。