Configure a afinidade do grupo de anfitriões de VMs

Este documento dá um exemplo de como configurar um cluster do Google Distributed Cloud para usar a afinidade entre VMs e anfitriões.

A afinidade do grupo de anfitriões de VMs é um dos mecanismos que o Google Distributed Cloud oferece para garantir a elevada disponibilidade. Com a afinidade de grupos de anfitriões de VMs, cria grupos de anfitriões ESXi físicos. Em seguida, configure o cluster para associar grupos de VMs a grupos de anfitriões.

Por exemplo, pode configurar todas as VMs num conjunto de nós para serem executadas num grupo de anfitriões específico. Além disso, pode configurar todas as VMs num segundo conjunto de nós para serem executadas num grupo de anfitriões diferente. Em seguida, pode tratar cada conjunto de nós como um domínio de falha. Para diferenciar os domínios de falha, pode adicionar etiquetas às VMs nos vários conjuntos de nós.

A utilização da afinidade do grupo de anfitriões de VMs não é suportada em clusters avançados.

Antes de começar

Para este exercício, tem de ter, pelo menos, seis anfitriões ESXi no seu ambiente vSphere.

Crie grupos de anfitriões

Crie dois ou mais grupos de DRS de anfitriões no seu ambiente do vSphere. Para este exercício, dois grupos de anfitriões com três anfitriões cada seriam adequados. Para ver instruções, consulte Crie um grupo DRS de anfitriões.

Crie um cluster de utilizadores

Esta secção dá um exemplo de como criar um cluster de utilizadores que usa a afinidade de grupo de anfitriões de VMs. O cluster neste exemplo usa o Controlplane V2. O cluster tem um painel de controlo de alta disponibilidade, pelo que existem três nós do painel de controlo. Além dos nós do plano de controlo, existem seis nós de trabalho: três num conjunto de nós e três num segundo conjunto de nós. Todos os nós usam endereços IP estáticos.

Comece por seguir as instruções em Crie um cluster de utilizadores.

À medida que preenche o ficheiro de configuração do cluster de utilizadores:

  • Especifique dois conjuntos de nós para nós trabalhadores. Para cada conjunto de nós, defina replicas como 3 e indique o nome de um grupo de anfitriões existente.

Exemplo de ficheiro de configuração

Segue-se um exemplo de um ficheiro de bloqueio de IPs e uma parte de um ficheiro de configuração de cluster de utilizadores.

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"
...

Seguem-se os pontos importantes a compreender no exemplo anterior:

  • Os endereços IP estáticos dos nós de trabalho são especificados num ficheiro de blocos de IP. O ficheiro de bloqueio de IP tem sete endereços, embora existam apenas seis nós de trabalho. O endereço IP adicional é necessário durante a atualização, a atualização e a reparação automática do cluster.

  • Os endereços IP estáticos para os três nós do plano de controlo são especificados na secção network.controlPlaneIPBlock do ficheiro de configuração do cluster de utilizadores. Não é necessário um endereço IP adicional neste bloco.

  • O campo masterNode.replicas está definido como 3, pelo que existem três nós do plano de controlo.

  • Um controlador de cluster cria um grupo DRS de VMs com os três nós no node pool worker-pool-1. Um controlador também cria uma regra de afinidade VM-anfitrião que garante que os nós em worker-pool-1 são executados em anfitriões que estão em hostgroup-1. Os nós em worker-pool-1 têm a etiqueta failuredomain: "failuredomain-1"

  • Um controlador de cluster cria um grupo DRS de VMs com os três nós no node pool worker-pool-2. Um controlador também cria uma regra de afinidade de VM-Host que garante que os nós em worker-pool-2 são executados em anfitriões que estão em hostgroup-2. Os nós em worker-pool-2 têm a etiqueta failuredomain: "failuredomain-2"

Continue a criar o cluster de utilizadores conforme descrito em Crie um cluster de utilizadores.