Neste documento, você verá um exemplo de como configurar um cluster do GKE Enterprise no VMware para usar a afinidade VM-Host.
A afinidade do grupo de host de VM é um dos mecanismos que o GKE no VMware oferece para garantir alta disponibilidade. Com a afinidade de grupo do VM-host, você cria grupos de hosts físicos ESXi. Em seguida, configure o cluster para associar grupos de VMs a grupos de hosts.
Por exemplo, é possível configurar todas as VMs em um pool de nós para serem executadas em um determinado grupo de hosts. Também é possível configurar todas as VMs em um segundo pool de nós para serem executadas em um grupo de hosts diferente. Em seguida, trate cada pool de nós como um domínio de falha. Para diferenciar os domínios de falha, adicione rótulos às VMs nos vários pools de nós.
Antes de começar
Para este exercício, você precisa ter pelo menos seis hosts ESXi no ambiente do vSphere.
Criar grupos de host
Crie dois ou mais grupos de DRS de host no seu ambiente do vSphere. Para este exercício, dois grupos de hosts com três hosts cada seriam apropriados. Para mais instruções, consulte Criar um grupo de DRS do host.
Criar um cluster de usuário
Nesta seção, você verá um exemplo de como criar um cluster de usuário que usa a afinidade de grupo do VM-host. O cluster neste exemplo usa o Controlplane V2. O cluster tem um plano de controle de alta disponibilidade, portanto, há três nós do plano de controle. Além dos nós do plano de controle, há seis nós de trabalho: três em um pool de nós e três em um segundo pool de nós. Todos os nós usam endereços IP estáticos.
Comece seguindo as instruções em Criar um cluster de usuário (Controlplane V2).
Durante o preenchimento do arquivo de configuração do cluster de usuário:
- Especifique dois pools de nós para workers. Para cada pool de nós, defina
replicas
como3
e forneça o nome de um grupo de hosts.
Exemplo: arquivo de configuração
Veja um exemplo de um arquivo de bloco de IP e uma parte de um arquivo de configuração de cluster de usuário.
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" ...
Estes são os pontos importantes que você precisa entender no exemplo anterior:
Os endereços IP estáticos dos nós de trabalho são especificados em um arquivo de bloco de IP. O arquivo de bloco de IP tem sete endereços, mesmo que haja apenas seis nós de trabalho. O endereço IP extra é necessário durante o upgrade, a atualização e o reparo automático do cluster.
Os endereços IP estáticos dos três nós do plano de controle são especificados na seção
network.controlPlaneIPBlock
do arquivo de configuração do cluster de usuário. Não é necessário ter um endereço IP extra neste bloco.O campo
masterNode.replicas
está definido como3
, então haverá três nós do plano de controle.Um controlador de cluster criará um grupo de DRS de VM que tem os três nós no pool de nós
worker-pool-1
. Um controlador também criará uma regra de afinidade de VM-host que garante que os nós emworker-pool-1
sejam executados em hosts que estão emhostgroup-1
. Os nós emworker-pool-1
têm o rótulofailuredomain: "failuredomain-1"
Um controlador de cluster criará um grupo de DRS de VM que tem os três nós no pool de nós
worker-pool-2
. Um controlador também criará uma regra de afinidade de VM-host que garante que os nós emworker-pool-2
sejam executados em hosts emhostgroup-2
. Os nós emworker-pool-2
têm o rótulofailuredomain: "failuredomain-2"
Continue criando o cluster de usuário conforme descrito em Criar um cluster de usuário (Controlplane V2).