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 disponibilità. Con l'affinità gruppo VM-host, puoi creare gruppi di host ESXi fisici. Quindi, configurerai il cluster per associare gruppi di VM ai gruppi host.
Ad esempio, puoi configurare tutte le VM in un pool di nodi per l'esecuzione su un determinato gruppo host. Inoltre, puoi configurare tutte le VM in un secondo pool di nodi per l'esecuzione su un gruppo di host diverso. Quindi, potresti trattare ogni pool di nodi come un dominio in errore. Per differenziare i domini in errore, potresti aggiungere etichette alle VM nei vari pool di nodi.
Prima di iniziare
Per questa esercitazione, devi disporre di almeno sei host ESXi nell'ambiente vSphere.
Crea gruppi di host
Crea due o più gruppi DRS host nel tuo ambiente vSphere. Per questo esercizio, saranno appropriati due gruppi di host con tre host ciascuno. Per le istruzioni, vedi Creare un gruppo DRS host.
Creazione di un cluster utente
Questa sezione fornisce un esempio di come creare un cluster utente che utilizza l'affinità VM-gruppo host. Il cluster in questo esempio utilizza il piano di controllo V2. Il cluster ha un piano di controllo ad alta disponibilità, quindi ci sono tre nodi. Oltre ai nodi del piano di controllo, ci sono 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 in Creare un cluster utente (Controlplane V2).
Quando compili il file di configurazione del cluster utente:
- Specifica due pool di nodi per i nodi worker. Per ogni pool di nodi, imposta
replicas
su3
e specifica il nome di un gruppo di host esistente.
File di configurazione di esempio
Ecco un esempio di un file di blocco IP e una parte del file di configurazione di un 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" ...
Questi sono 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 dei blocchi IP ha sette indirizzi anche se ci sono solo sei nodi worker. È necessario un indirizzo IP aggiuntivo durante l'upgrade e la riparazione automatica del cluster.
Gli indirizzi IP statici per i tre nodi del piano di controllo sono specificati nella sezione
network.controlPlaneIPBlock
del file di configurazione del cluster utente. Non è necessario un indirizzo IP aggiuntivo in questo blocco.Il campo
masterNode.replicas
è impostato su3
, quindi ci saranno tre nodi del piano di controllo.Un controller di cluster creerà un gruppo DRS di VM contenente i tre nodi nel pool di nodi
worker-pool-1
. Un controller creerà anche una regola di affinità dell'host VM che garantisce l'esecuzione dei nodi inworker-pool-1
su host che si trovano inhostgroup-1
. I nodi inworker-pool-1
hanno l'etichettafailuredomain: "failuredomain-1"
Un controller di cluster creerà un gruppo DRS di VM contenente i tre nodi nel pool di nodi
worker-pool-2
. Un controller creerà anche una regola di affinità dell'host VM che garantisce che i nodi inworker-pool-2
vengano eseguiti sugli host che si trovano inhostgroup-2
. I nodi inworker-pool-2
hanno l'etichettafailuredomain: "failuredomain-2"
Continua a creare il cluster utente come descritto in Creare un cluster utente (Controlplane V2).