Die VM-Host-Gruppenaffinität ist einer der Mechanismen, die Google Distributed Cloud zur Gewährleistung der Hochverfügbarkeit bietet. Mit der VM-Host-Gruppenaffinität erstellen Sie Gruppen von physischen ESXi-Hosts. Anschließend konfigurieren Sie Ihren Cluster so, dass VM-Gruppen mit Hostgruppen verknüpft werden.
Sie können beispielsweise alle VMs in einem Knotenpool so konfigurieren, dass sie in einer bestimmten Hostgruppe ausgeführt werden. Außerdem können Sie alle VMs in einem zweiten Knotenpool so konfigurieren, dass sie in einer anderen Hostgruppe ausgeführt werden. Sie können dann jeden Knotenpool als Fehlerdomain behandeln. Um die Fehlerdomains zu unterscheiden, können Sie den VMs in den verschiedenen Knotenpools Labels hinzufügen.
Die Verwendung der VM-Host-Gruppenaffinität wird in erweiterten Clustern nicht unterstützt.
Hinweis
Für diese Übung benötigen Sie mindestens sechs ESXi-Hosts in Ihrer vSphere-Umgebung.
Hostgruppen erstellen
Erstellen Sie in Ihrer vSphere-Umgebung zwei oder mehr Host-DRS-Gruppen. Für diese Übung sind 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 gezeigt, wie Sie einen Nutzercluster erstellen, der die VM-Host-Gruppenaffinität verwendet. Der Cluster in diesem Beispiel verwendet Controlplane V2. Der Cluster hat eine Steuerungsebene mit Hochverfügbarkeit, daher gibt es drei Knoten auf Steuerungsebene. Neben den Knoten auf Steuerungsebene gibt es sechs Worker-Knoten: drei in einem Knotenpool und drei in einem zweiten Knotenpool. Alle Knoten verwenden statische IP-Adressen.
Folgen Sie zuerst der Anleitung unter Nutzercluster erstellen.
Wenn Sie die Konfigurationsdatei für den Nutzercluster ausfüllen, gehen Sie so vor:
- Geben Sie zwei Knotenpools für Worker-Knoten an. Legen Sie für jeden Knotenpool
replicasauf3fest 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 Konfigurationsdatei für den Nutzercluster.
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"
...
Im obigen Beispiel sind dies die wichtigsten Punkte:
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, des Updates und der automatischen Reparatur benötigt.
Die statischen IP-Adressen für die drei Knoten der Steuerungsebene werden im Abschnitt
network.controlPlaneIPBlockder Konfigurationsdatei des Nutzerclusters angegeben. In diesem Block ist keine zusätzliche IP-Adresse erforderlich.Das Feld
masterNode.replicasist auf3festgelegt, sodass drei Knoten auf Steuerungsebene vorhanden sind.Ein Clustercontroller erstellt eine VM-DRS-Gruppe mit den drei Knoten im Knotenpool
worker-pool-1. Ein Controller erstellt auch eine VM-Host-Affinitätsregel , die dafür sorgt, dass Knoten inworker-pool-1auf Hosts ausgeführt werden, die sich inhostgroup-1befinden. Die Knoten inworker-pool-1haben das Labelfailuredomain: "failuredomain-1".Ein Clustercontroller erstellt eine VM-DRS-Gruppe mit den drei Knoten im Knotenpool
worker-pool-2. Ein Controller erstellt auch eine VM-Host-Affinitätsregel, die dafür sorgt, dass Knoten inworker-pool-2auf Hosts ausgeführt werden, die sich inhostgroup-2befinden. Die Knoten inworker-pool-2haben das Labelfailuredomain: "failuredomain-2"
Fahren Sie mit dem Erstellen des Nutzerclusters fort, wie unter Nutzercluster erstellen beschrieben.