Configura l'affinità del gruppo di VM e host

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

L'affinità del gruppo di host VM è uno dei meccanismi forniti da Google Distributed Cloud per garantire l'alta disponibilità. Con l'affinità Gruppo di VM-host, puoi creare gruppi di host ESXi fisici. Poi, configura il cluster per 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 determinato gruppo di host. Inoltre, puoi configurare tutte le VM in un secondo pool di nodi in modo che vengano eseguite su un gruppo di host diverso. Potresti quindi trattare ogni pool di nodi come un dominio di errore. Per distinguere i domini di errore, puoi aggiungere etichette alle VM nei vari pool di nodi.

Prima di iniziare

Per questo esercizio, devi disporre di 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, sono appropriati due gruppi di host con tre host ciascuno. Per istruzioni, consulta 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à del gruppo di VM-host. Il cluster in questo esempio utilizza Controlplane V2. Il cluster ha un piano di controllo per l'alta disponibilità, quindi sono presenti tre nodi del piano di controllo. Oltre ai nodi del piano di controllo, sono presenti sei nodi worker: tre in un primo node pool e tre in un secondo node pool. Tutti i nodi utilizzano indirizzi IP statici.

Per iniziare, segui le istruzioni riportate in Creare un cluster utente (Controlplane V2).

Mentre 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 fornisci il nome di un gruppo di host esistente.

File di configurazione di esempio

Di seguito è riportato un esempio di file di blocco 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 blocco IP. Il file di blocco IP contiene 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 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 ci saranno tre nodi del piano di controllo.

  • 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 in worker-pool-1 vengano eseguiti su host in hostgroup-1. I nodi in worker-pool-1 hanno l'etichetta failuredomain: "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 in worker-pool-2 vengano eseguiti su host 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 (Controlplane V2).