Configura l'affinità gruppo VM-host

Questo documento fornisce un esempio di come configurare un cluster Google Distributed Cloud per utilizzare l'affinità host VM.

L'affinità gruppo VM-host è uno dei meccanismi forniti da Google Distributed Cloud per garantire un'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, potresti configurare tutte le VM in un pool di nodi per l'esecuzione in un determinato gruppo host. Inoltre, potresti configurare tutte le VM in un secondo pool di nodi per l'esecuzione in un gruppo host diverso. Quindi potresti considerare ogni pool di nodi come un dominio in errore. Per differenziare i domini in errore, puoi aggiungere etichette alle VM nei vari pool di nodi.

Prima di iniziare

Per questo esercizio, devi avere almeno sei host ESXi nel tuo ambiente vSphere.

Crea gruppi 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 le istruzioni, consulta Creare un gruppo DRS dell'host.

Creazione di un cluster utente

Questa sezione fornisce un esempio di come creare un cluster utente che utilizza l'affinità gruppo VM-host. Il cluster in questo esempio utilizza Controlplane 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.

Per iniziare, segui le istruzioni in Creare un cluster utente (piano di controllo 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 su 3 e specifica il nome di un gruppo host esistente.

File di configurazione di esempio

Ecco un esempio di 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"
...

Di seguito sono riportati 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. 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 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 su 3, quindi saranno presenti tre nodi del piano di controllo.

  • Un controller del cluster creerà un gruppo DRS della VM contenente i tre nodi nel pool di nodi worker-pool-1. Un controller creerà inoltre una regola di affinità dell'host VM che garantisce che i nodi in worker-pool-1 vengano eseguiti sugli host che si trovano in hostgroup-1. I nodi in worker-pool-1 hanno l'etichetta failuredomain: "failuredomain-1"

  • Un controller del cluster creerà un gruppo DRS della 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 in worker-pool-2 vengano eseguiti sugli host che si trovano in hostgroup-2. I nodi in worker-pool-2 hanno l'etichetta failuredomain: "failuredomain-2"

Continua a creare il cluster utente come descritto in Creare un cluster utente (piano di controllo V2).