Ao criar um cluster de usuário, você precisa configurar pelo menos um pool de nós, que é um grupo de nós com a mesma configuração. Após a criação do cluster, é possível adicionar novos pools de nós, atualizar as configurações dele e excluir pools de nós.
A maneira de criar, atualizar e excluir pools de nós depende de o cluster ser gerenciado pela API GKE On-Prem. Um cluster de usuário será gerenciado pela API GKE On-Prem se uma das condições a seguir for verdadeira:
O cluster foi criado no console do Google Cloud, que configura automaticamente a API GKE On-Prem para gerenciar o cluster.
O comando
gkectl enroll cluster
foi executado em um cluster de usuário, que configura ele para ser gerenciado pela API do GKE On-Prem.
Se a API GKE On-Prem estiver gerenciando um cluster de usuários, será possível usar o
console do Google Cloud para gerenciar pools de nós. Se o cluster de usuário não for gerenciado
pela API GKE On-Prem, use gkectl
na linha de comando da estação de trabalho
de administrador para gerenciar pools de nós.
Adicione um pool de nós
Se você criou o cluster no console do Google Cloud, é possível usar o console do Google Cloud para adicionar um pool de nós. Porém, você precisa usar a linha de comando para definir as seguintes configurações do pool de nós:
- Windows para o tipo de imagem do SO
- Repositório de dados do vSphere
tags vSphere Se você quiser anexar tags a todas as VMs em um pool de nós, sua conta de usuário do vCenter precisa ter estes privilégios de inclusão de tag do vSphere:
- "vSphere Tagging.Assign" ou "Unassign vSphere Tag"
- "vSphere Tagging.Assign" ou "Unassign vSphere Tag" no objeto (vSphere 7)
Antes de adicionar outro pool de nós, verifique se endereços IP suficientes estão disponíveis no cluster.
Console
No console do Google Cloud, acesse a página Clusters do Anthos.
Selecione o projeto do Cloud em que o cluster de usuário está.
Na lista de cluster, clique no nome dele e em Ver detalhes no painel Detalhes.
Clique em
Adicionar pool de nós.Configure o pool de nós:
- Digite o Nome do pool de nós.
- Insira o número de vCPUs de cada nó no pool (mínimo de 4 por worker do cluster de usuário)
- Insira o tamanho da memória em mebibytes (MiB) para cada nó no pool (mínimo de 8.192 MiB por nó de trabalho do cluster de usuário, e precisa ser um múltiplo de 4).
- No campo Nodes, insira o número de nós no pool (mínimo de três).
Selecione o tipo de imagem do SO: Ubuntu Containerd, Ubuntu ou COS.
Digite Tamanho do disco de inicialização em gibibytes (GiB). O padrão é 40 GiB.
Na seção Metadados do pool de nós (opcional), se quiser adicionar rótulos e taints do Kubernetes, faça o seguinte:
- Clique em + Adicionar rótulos do Kubernetes. Insira a Chave e o Valor do rótulo. Repita quantas vezes forem necessárias.
- Clique em + Adicionar taint. Insira Key, Value e Effect para o taint. Repita quantas vezes forem necessárias.
Clique em Criar.
O console do Google Cloud exibe Status do cluster: alterações em andamento. Clique em Mostrar detalhes para ver a Condição do status do recurso e as Mensagens de status.
Linha de comando
No arquivo de configuração do cluster de usuário, preencha a seção
nodePools
.É necessário especificar os seguintes campos:
nodePools.[i].name
nodePools[i].cpus
nodePools.[i].memoryMB
nodePools.[i].replicas
Os seguintes campos são opcionais. Se você não incluir
nodePools[i].bootDiskSizeGB
ounodePools[i].osImageType
, os valores padrão serão usados.nodePools[i].labels
nodePools[i].taints
nodePools[i].bootDiskSizeGB
nodePools[i].osImageType
nodePools[i].vsphere.datastore
nodePools[i].vsphere.tags
Execute este comando:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Substitua:
[ADMIN_CLUSTER_KUBECONFIG]
pelo caminho do arquivo kubeconfig para o cluster de administrador;[USER_CLUSTER_CONFIG]
é o caminho do arquivo de configuração do cluster de usuário.
Exemplo de configuração
No exemplo de configuração a seguir, há quatro pools de nós, cada um com atributos diferentes:
pool-1
: somente os atributos mínimos necessários são especificadospool-2
: incluivsphere.datastore
evsphere.tags
pool-3
: incluitaints
elabels
pool-4
: incluiosImageType
ebootDiskSizeGB
nodePools:
- name: pool-1
cpus: 4
memoryMB: 8192
replicas: 5
- name: pool-2
cpus: 8
memoryMB: 16384
replicas: 3
vsphere:
datastore: my_datastore
tags:
- category: "purpose"
name: "testing"
- name: pool-3
cpus: 4
memoryMB: 8192
replicas: 5
taints:
- key: "example-key"
effect: NoSchedule
labels:
environment: production
app: nginx
- name: pool-4
cpus: 4
memoryMB: 8192
replicas: 5
osImageType: cos
bootDiskSizeGB: 40
Atualizar um pool de nós
Use a linha de comando para atualizar todos os campos na seção
nodePools
do arquivo de configuração do cluster de usuário. Atualmente, os únicos campos do pool de
nós que podem ser atualizados usando o console do Google Cloud são:
- Número de réplicas
- Memória
- Número de vCPUs
Quando você aumenta o número de réplicas, os clusters do Anthos no VMware adicionam o número necessário de nós ao cluster de usuários e, quando você diminui o número de réplicas, os nós são removidos. Alterar o número de réplicas de um pool de nós não interrompe as cargas de trabalho. Verifique se você tem endereços IP disponíveis se aumentar o número de réplicas.
Se você atualizar qualquer outro campo do pool de nós, isso acionará uma atualização gradual no cluster. Em uma atualização gradual, os clusters do Anthos no VMware criam um novo nó e excluem um nó antigo. Esse processo é repetido até que todos os nós antigos sejam substituídos por novos nós. Esse processo não causa inatividade, mas o cluster precisa ter um endereço IP extra disponível para usar durante a atualização.
Suponha que um pool de nós tenha N nós no final de uma atualização. Assim, será preciso ter pelo menos N + 1 endereços IP disponíveis para os nós no pool. Isso significa que, se você estiver redimensionando um cluster adicionando nós a um ou mais pools, precisará ter pelo menos um endereço IP a mais do que o número total de nós que estará em todos os pools de nós do cluster no final do redimensionamento. Saiba mais em Verificar se endereços IP suficientes estão disponíveis.
Para atualizar um pool de nós em um cluster de usuário:
Console
No console do Google Cloud, acesse a página Clusters do Anthos.
Selecione o projeto do Cloud em que o cluster de usuário está.
Na lista de cluster, clique no nome dele e em Ver detalhes no painel Detalhes.
Clique na guia Nós.
Clique no nome do pool de nós que você quer modificar.
Clique em
Editar ao lado do campo que você quer modificar e clique em Concluído.Clique em
para voltar à página anterior.O console do Google Cloud exibe Status do cluster: alterações em andamento. Clique em Mostrar detalhes para ver a Condição do status do recurso e as Mensagens de status.
Linha de comando
Modifique os valores dos campos que você quer alterar na seção
nodePools
do arquivo de configuração do cluster de usuário.Atualize o cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Substitua:
[ADMIN_CLUSTER_KUBECONFIG]
pelo caminho do arquivo kubeconfig para o cluster de administrador;[USER_CLUSTER_CONFIG]
é o caminho do arquivo de configuração do cluster de usuário.
Atualizar o osImageType
usado por um pool de nós
Para atualizar um pool de nós para usar um osImageType
diferente, use a
linha de comando. Para alterar o osImageType
usado por um pool de nós, atualize o
arquivo de configuração do pool de nós, conforme mostrado no exemplo a seguir, e execute
gkectl update cluster
.
nodePools: - name: np-1 cpus: 4 memoryMB: 8192 replicas: 3 osImageType: ubuntu_containerd
Verificar as alterações
Para verificar se os pools de nós foram criados ou atualizados conforme o esperado, inspecione os nós do cluster:
Console
No console do Google Cloud, acesse a página Clusters do Anthos.
Selecione o projeto do Cloud em que o cluster de usuário está.
Na lista de cluster, clique no nome dele e em Ver detalhes no painel Detalhes.
Clique na guia Nós.
Clique no nome do pool de nós que você quer ver.
Linha de comando
Execute este comando:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes -o wide
Se você precisar reverter as alterações, edite o arquivo de configuração do cluster e
execute gkectl update cluster
.
Excluir um pool de nós
Embora seja possível excluir pools de nós, seu cluster de usuário precisa ter pelo menos um pool de nós. A exclusão de um pool de nós causa a remoção imediata dos nós do pool, mesmo que eles estejam executando cargas de trabalho.
Para excluir um pool de nós de um cluster de usuário:
Console
Assegure-se de que não haja cargas de trabalho em execução nos nós afetados.
No console do Google Cloud, acesse a página Clusters do Anthos.
Selecione o projeto do Cloud em que o cluster de usuário está.
Na lista de cluster, clique no nome dele e em Ver detalhes no painel Detalhes.
Clique na guia Nós.
Clique no nome do pool de nós que você quer excluir.
Clique em
Excluir.Clique em
para voltar à página anterior.O console do Google Cloud exibe Status do cluster: alterações em andamento. Clique em Mostrar detalhes para ver a Condição do status do recurso e as Mensagens de status.
Linha de comando
Assegure-se de que não haja cargas de trabalho em execução nos nós afetados.
Remova a definição da seção
nodePools
do arquivo de configuração do cluster de usuário.Atualize o cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Substitua:
[ADMIN_CLUSTER_KUBECONFIG]
pelo caminho do arquivo kubeconfig para o cluster de administrador;[USER_CLUSTER_CONFIG]
é o caminho do arquivo de configuração do cluster de usuário.
Solução de problemas
Em geral, o comando
gkectl update cluster
fornece detalhes quando falha. Se o comando for bem-sucedido e você não vir os nós, solucione o problema com o guia Como diagnosticar problemas de cluster.É possível que haja recursos de cluster insuficientes, como a falta de endereços IP disponíveis durante a criação ou atualização do pool de nós. Consulte o tópico Como redimensionar um cluster de usuários para ver detalhes sobre como verificar se os endereços IP estão disponíveis.
Você também pode consultar o guia geral de Solução de problemas.
Não prosseguirá depois de
Creating node MachineDeployment(s) in user cluster…
.Pode levar algum tempo para criar ou atualizar os pools de nós no cluster de usuários. No entanto, se o tempo de espera for extremamente longo e você suspeitar que algo possa ter ocorrido, execute os seguintes comandos:
- Execute
kubectl get nodes
para ver o estado dos nós. - Para qualquer nó que não esteja pronto, execute
kubectl describe node NODE_NAME
para mais detalhes.
- Execute