Dieses Dokument enthält ein Beispiel für die Konfiguration eines Google Distributed Cloud-Clusters für die Verwendung der VM-Host-Affinität.
Die VM-Hostgruppen-Affinität ist einer der Mechanismen, die Google Distributed Cloud zur Sicherstellung einer Hochverfügbarkeit bereitstellt. Mit der VM-Hostgruppen-Affinität erstellen Sie Gruppen von physischen ESXi-Hosts. Anschließend konfigurieren Sie den Cluster so, dass VM-Gruppen mit Hostgruppen verknüpft werden.
Beispielsweise können Sie alle VMs in einem Knotenpool so konfigurieren, dass sie auf einer bestimmten Hostgruppe ausgeführt werden. Außerdem könnten Sie alle VMs in einem zweiten Knotenpool so konfigurieren, dass sie in einer anderen Hostgruppe ausgeführt werden. Sie könnten dann jeden Knotenpool als Fehlerdomain behandeln. Um die fehlerhaften Domains zu unterscheiden, können Sie den VMs in den verschiedenen Knotenpools Labels hinzufügen.
Hinweise
Für diese Übung benötigen Sie mindestens sechs ESXi-Hosts in Ihrer vSphere-Umgebung.
Hostgruppen erstellen
Erstellen Sie zwei oder mehr DRS-Hostgruppen in Ihrer vSphere-Umgebung. Für diese Übung wären zwei Hostgruppen mit jeweils drei Hosts geeignet. Eine Anleitung finden Sie unter Host-DRS-Gruppe erstellen.
Nutzercluster erstellen
In diesem Abschnitt wird anhand eines Beispiels erläutert, wie Sie einen Nutzercluster erstellen, der die VM-Host-Gruppen-Affinität verwendet. Der Cluster in diesem Beispiel verwendet Steuerungsebene V2. Da der Cluster eine Steuerungsebene mit Hochverfügbarkeit hat, gibt es drei Knoten der Steuerungsebene. Zusätzlich zu den Knoten der Steuerungsebene gibt es sechs Worker-Knoten: drei in einem Knotenpool und drei in einem zweiten Knotenpool. Alle Knoten verwenden statische IP-Adressen.
Folgen Sie der Anleitung unter Nutzercluster erstellen (Steuerungsebene V2).
Beim Ausfüllen der Konfigurationsdatei des Nutzerclusters:
- Geben Sie zwei Knotenpools für Worker-Knoten an. Legen Sie für jeden Knotenpool
replicas
auf3
fest und geben Sie den Namen einer vorhandenen Hostgruppe an.
Beispiel: Konfigurationsdatei
Hier sehen Sie ein Beispiel für eine IP-Blockdatei und einen Teil einer Nutzercluster-Konfigurationsdatei.
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" ...
Dies sind die wichtigsten Punkte, die im vorherigen Beispiel zu verstehen sind:
Die statischen IP-Adressen für die Worker-Knoten werden in einer IP-Blockdatei angegeben. Die IP-Blockdatei hat sieben Adressen, obwohl es nur sechs Worker-Knoten gibt. Die zusätzliche IP-Adresse wird während des Clusterupgrades, -updates und der automatischen Reparatur benötigt.
Die statischen IP-Adressen für die drei Knoten der Steuerungsebene werden im Abschnitt
network.controlPlaneIPBlock
der Konfigurationsdatei des Nutzerclusters angegeben. In diesem Block wird keine zusätzliche IP-Adresse benötigt.Das Feld
masterNode.replicas
ist auf3
gesetzt, sodass es drei Knoten der Steuerungsebene gibt.Ein Clustercontroller erstellt eine VM-DRS-Gruppe mit den drei Knoten im Knotenpool
worker-pool-1
. Ein Controller erstellt außerdem eine VM-Host-Affinitätsregel, die dafür sorgt, dass Knoten inworker-pool-1
auf Hosts inhostgroup-1
ausgeführt werden. Die Knoten inworker-pool-1
haben das Labelfailuredomain: "failuredomain-1"
Ein Clustercontroller erstellt eine VM-DRS-Gruppe mit den drei Knoten im Knotenpool
worker-pool-2
. Ein Controller erstellt außerdem eine VM-Host-Affinitätsregel, die sicherstellt, dass Knoten inworker-pool-2
auf Hosts inhostgroup-2
ausgeführt werden. Die Knoten inworker-pool-2
haben das Labelfailuredomain: "failuredomain-2"
Fahren Sie mit dem Erstellen des Nutzerclusters fort, wie unter Nutzercluster erstellen (Steuerungsebene V2) beschrieben.