設定 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"

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