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
como3
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 como3
, 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 emworker-pool-1
são executados em anfitriões que estão emhostgroup-1
. Os nós emworker-pool-1
têm a etiquetafailuredomain: "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 emworker-pool-2
são executados em anfitriões que estão emhostgroup-2
. Os nós emworker-pool-2
têm a etiquetafailuredomain: "failuredomain-2"
Continue a criar o cluster de utilizadores conforme descrito em Crie um cluster de utilizadores.