設定 VM 主機群組相依性

本文提供範例,說明如何設定 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"

按照「建立使用者叢集」一文的說明,繼續建立使用者叢集。