Questo documento fornisce un esempio di come configurare un cluster Google Distributed Cloud per utilizzare l'affinità VM-host.
L'affinità del gruppo VM-host è uno dei meccanismi forniti da Google Distributed Cloud per garantire l'alta affidabilità. Con l'affinità del gruppo VM-host, crei gruppi di host ESXi fisici. Poi configuri il cluster in modo da associare i gruppi di VM ai gruppi di host.
Ad esempio, puoi configurare tutte le VM in un pool di nodi in modo che vengano eseguite su un gruppo di host specifico. Puoi anche configurare tutte le VM in un secondo pool di nodi in modo che vengano eseguite su un gruppo di host diverso. Puoi quindi trattare ogni pool di nodi come un dominio in errore. Per distinguere i domini di errore, puoi aggiungere etichette alle VM nei vari pool di nodi.
L'utilizzo dell'affinità del gruppo VM-host non è supportato nei cluster avanzati.
Prima di iniziare
Per questo esercizio, devi avere almeno sei host ESXi nel tuo ambiente vSphere.
Creare gruppi di host
Crea due o più gruppi DRS host nel tuo ambiente vSphere. Per questo esercizio, sarebbero appropriati due gruppi di host con tre host ciascuno. Per istruzioni, consulta Creare un gruppo DRS host.
Creare un cluster utente
Questa sezione fornisce un esempio di come creare un cluster utente che utilizza l'affinità del gruppo VM-host. Il cluster in questo esempio utilizza Controlplane V2. Il cluster ha un control plane ad alta disponibilità, quindi sono presenti tre nodi del control plane. Oltre ai nodi del control plane, sono presenti sei nodi worker: tre in un pool di nodi e tre in un secondo pool di nodi. Tutti i nodi utilizzano indirizzi IP statici.
Inizia seguendo le istruzioni riportate in Creare un cluster utente.
Quando compili il file di configurazione del cluster utente:
- Specifica due pool di nodi per i nodi worker. Per ogni pool di nodi, imposta
replicassu3e fornisci il nome di un gruppo di host esistente.
File di configurazione di esempio
Di seguito è riportato un esempio di un file di blocchi IP e di una parte di un file di configurazione del cluster utente.
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"
...
Ecco i punti importanti da comprendere nell'esempio precedente:
Gli indirizzi IP statici per i nodi worker sono specificati in un file di blocchi IP. Il file di blocchi IP ha sette indirizzi, anche se sono presenti solo sei nodi worker. L'indirizzo IP aggiuntivo è necessario durante l'upgrade, l'aggiornamento e la riparazione automatica del cluster.
Gli indirizzi IP statici per i tre nodi del control plane sono specificati nella sezione
network.controlPlaneIPBlockdel file di configurazione del cluster utente. Non è necessario un indirizzo IP aggiuntivo in questo blocco.Il campo
masterNode.replicasè impostato su3, quindi saranno presenti tre nodi del control plane.Un controller del cluster creerà un gruppo DRS VM con i tre nodi nel pool di nodi
worker-pool-1. Un controller creerà anche una regola di affinità VM-host che garantisce che i nodi inworker-pool-1vengano eseguiti su host che si trovano inhostgroup-1. I nodi inworker-pool-1hanno l'etichettafailuredomain: "failuredomain-1"Un controller del cluster creerà un gruppo DRS VM con i tre nodi nel pool di nodi
worker-pool-2. Un controller creerà anche una regola di affinità VM-host che garantisce che i nodi inworker-pool-2vengano eseguiti su host che si trovano inhostgroup-2. I nodi inworker-pool-2hanno l'etichettafailuredomain: "failuredomain-2"
Continua a creare il cluster utente come descritto in Creare un cluster utente.