Nos clusters do Anthos em bare metal, você adiciona ou remove nós em um cluster
editando as definições do pool de nós do cluster. Use o comando kubectl
para alterar essas definições.
Há três tipos de pools de nós nos clusters do Anthos em bare metal: plano de controle, balanceador de carga e pools de nós de trabalho. Você edita os nós do plano de controle e do balanceador de carga por meio das definições nos recursos de cluster associados e edita diretamente as definições do pool de nós de trabalho.
Como visualizar o status do nó
Também é possível ver o status dos nós e os respectivos pools com o comando kubectl get
.
Por exemplo, o comando a seguir mostra o status dos pools de nós no namespace do cluster my-cluster
:
kubectl -n my-cluster get nodepools.baremetal.cluster.gke.io
O sistema retorna resultados semelhantes aos seguintes:
NAME READY RECONCILING STALLED UNDERMAINTENANCE UNKNOWN
my-cluster 3 0 0 0 0
my-cluster-lb 2 0 0 0 0
np1 3 0 0 0 0
Se você precisar de mais informações sobre como diagnosticar os clusters, consulte Como diagnosticar e redefinir clusters.
Como alterar nós
A maioria das alterações de nó é especificada no arquivo de configuração do cluster, que depois é
aplicado ao cluster. Recomendamos que você use o arquivo de configuração do cluster como a
principal origem para atualizar o cluster É uma prática recomendada armazenar o
arquivo de configuração em um sistema de controle de versões que rastreie as alterações para fins de
solução de problemas. O comando bmctl update
é compatível apenas com clusters
independentes. Para clusters de administrador, de usuários e híbridos, use kubectl apply
para
atualizar o cluster com as alterações do pool de nós.
Os clusters do Anthos no arquivo de configuração do cluster bare metal incluem uma seção de
cabeçalho com informações de credenciais. As entradas de credenciais e o restante do
arquivo de configuração são YAML válidos, mas as entradas de credenciais não são válidas para o
recurso do cluster. Remova as entradas do caminho da chave de credencial, como gcrKeyPath
e sshPrivateKeyPath
, antes de usar kubectl apply
. Use
bmctl update credentials
para atualizações de credenciais.
Como alternativa, use kubectl edit
para modificar o recurso do cluster
diretamente. Exemplo:
kubectl edit cluster -n CLUSTER_NAMESPACE CLUSTER_NAME
As seções a seguir descrevem algumas diferenças importantes para atualizar tipos de nós específicos.
Nós do plano de controle e do balanceador de carga
As especificações do pool de nós do plano de controle e do balanceador de carga para clusters do Anthos em bare metal são especiais. Essas especificações declaram e controlam os recursos essenciais do cluster. A fonte canônica desses recursos é a respectiva seção no arquivo de configuração do cluster.
spec.controlPlane.nodePoolSpec
spec.LoadBalancer.nodePoolSpec
Para adicionar ou remover nós do plano de controle ou do balanceador de carga, edite a matriz de
endereços em nodes
na seção correspondente do
arquivo de configuração do cluster.
Em uma configuração de alta disponibilidade (HA, na sigla em inglês), é necessário um número ímpar de pools de nós do plano de controle (três ou mais) para estabelecer um quórum. Assim, se um plano de controle falhar, outros assumirão o controle. Se você tiver um número par de nós temporariamente durante a adição ou remoção de nós para manutenção ou substituição, sua implantação manterá a alta disponibilidade, desde que você tenha quórum suficiente.
Nós de trabalho
É possível adicionar ou remover nós de trabalho diretamente com o comando kubectl
.
Os pools de nós de trabalho precisam ter pelo menos um nó pretendido.
No exemplo a seguir, o comando exclui um pool de nós chamado np1
, em que
a variável do namespace do cluster é my-cluster
:
kubectl -n my-cluster delete nodepool np1
Da mesma forma, os pools de nós podem ser redimensionados editando a matriz de
endereços spec.nodes
.
Quando você remove nós de um cluster, eles primeiro são drenados de todos os pods. Os nós não serão removidos do cluster se não for possível reprogramar os pods em outros nós. A remoção de nós remove apenas o nó do plano de controle. O conteúdo do nó não é redefinido.
O comando kubectl edit
a seguir permite editar e confirmar alterações
no namespace do cluster my-cluster e no pool de nós np1:
kubectl -n my-cluster edit nodepool np1