Quando os nós no GKE em Bare Metal falham, o que pode acontecer devido a problemas de armazenamento, rede ou configuração incorreta do SO, você quer restaurar com eficiência a integridade do cluster. Depois de restaurar a integridade do cluster, é possível solucionar problemas de falha do nó. Neste documento, mostramos como se recuperar de cenários de falha de nó redefinindo um nó e removendo-o à força, se necessário.
Se você quiser adicionar ou remover nós de um cluster quando um deles não tiver falhado, consulte Atualizar clusters.
Se precisar de mais ajuda, entre em contato com o Cloud Customer Care.Redefinir nós
Quando há uma falha de nó, às vezes não é possível executar comandos de redefinição nele, porque o nó pode estar inacessível. Talvez seja necessário remover o nó do cluster à força.
Quando você redefine corretamente um nó e atualiza o cluster, as seguintes ações ocorrem:
- o nó é redefinido, de maneira semelhante a
kubeadm reset
, e a máquina retorna ao estado pré-instalado. - as referências relacionadas ao nó são removidas dos recursos personalizados do pool de nós e do cluster.
Em alguns dos comandos bmctl
a seguir para redefinir nós, o parâmetro --force
indica se os comandos de redefinição (etapa 1) precisam ser ignorados. Se
o parâmetro --force
for usado, o bmctl
vai realizar apenas a etapa de remoção (etapa
2) e não vai executar os comandos de redefinição.
Remover nó de trabalho
Para remover um nó de trabalho de um cluster, siga estas etapas:
tente redefinir o nó de maneira limpa. Depois que o nó é redefinido, ele é removido do cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Substitua:
COMMA_SEPARATED_IP
: os endereços IP dos nós a serem redefinidos, como10.200.0.8,10.200.0.9
.CLUSTER_NAME
: o nome do cluster de destino que contém os nós com falha.ADMIN_KUBECONFIG
: o caminho para o arquivokubeconfig
do cluster de administrador.
Se esse comando for bem-sucedido, você poderá diagnosticar o nó e corrigir as configurações incorretas que causaram a falha inicial. Pule as etapas restantes nesta seção.
Se a etapa anterior para redefinir o nó falhar, force a remoção dele do cluster. Essa remoção forçada ignora a etapa anterior que executa os comandos de redefinição e executa apenas a etapa para remover as referências relacionadas ao nó do pool de nós e dos recursos personalizados do cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
Agora é possível diagnosticar o nó e corrigir configurações incorretas que causaram a falha inicial.
Se você removeu à força o nó do cluster de nós na etapa anterior, execute o comando
bmctl reset
novamente para redefinir os nós:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Remover um único nó do plano de controle
O processo é o mesmo dos nós de trabalho. Para nós do plano de controle, bmctl
também limpa a assinatura etcd
.
O cluster deixa de estar em um estado de alta disponibilidade (HA, na sigla em inglês) depois que você remove o nó com falha. Para retornar a um estado de alta disponibilidade, adicione um nó íntegro ao cluster.
Para remover um nó de um cluster, siga estas etapas:
tente redefinir o nó de maneira limpa. Depois que o nó é redefinido, ele é removido do cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Substitua os seguintes valores:
COMMA_SEPARATED_IP
: os endereços IP dos nós a serem redefinidos, como10.200.0.8,10.200.0.9
.CLUSTER_NAME
: o nome do cluster de destino que contém os nós com falha.ADMIN_KUBECONFIG
: o caminho para o arquivokubeconfig
do cluster de administrador.
Se esse comando for bem-sucedido, você poderá diagnosticar o nó e corrigir as configurações incorretas que causaram a falha inicial. Pule as etapas restantes nesta seção.
Se a etapa anterior para redefinir o nó falhar, você poderá removê-lo à força do cluster. Essa remoção forçada pula a etapa anterior que executa os comandos de redefinição e executa apenas a etapa para remover as referências relacionadas ao nó dos recursos personalizados do pool de nós e do cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
Agora é possível diagnosticar o nó e corrigir configurações incorretas que causaram a falha inicial.
Se você removeu à força o nó do cluster de nós na etapa anterior, execute o comando
bmctl reset
novamente para redefinir os nós:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Quórum perdido no plano de controle de alta disponibilidade
Se muitos nós dos planos de controle em um cluster de alta disponibilidade entrarem em um estado com falha, o cluster perderá o quórum e ficará indisponível.
Quando você precisar restaurar clusters de gerenciamento, não forneça o arquivo kubeconfig
nos comandos de redefinição. Se você fornecer o arquivo kubeconfig
para um cluster
de gerenciamento, ele forçará um novo cluster a executar a operação de redefinição. Ao restaurar
um cluster de usuário, forneça o caminho para o arquivo kubeconfig
.
Para recuperar um cluster que perdeu o quórum, execute o seguinte comando em um nó íntegro:
bmctl restore --control-plane-node CONTROL_PLANE_NODE \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]
Substitua:
CONTROL_PLANE_NODE
: os endereços IP de um nó íntegro que permanece como parte do cluster.CLUSTER_NAME
: o nome do cluster de destino que contém os nós com falha.KUBECONFIG_FILE
: se estiver recuperando um cluster de usuário, o caminho para o arquivokubeconfig
do cluster de usuário.
Depois de recuperar os nós com falha, execute o comando
bmctl reset
para redefini-los:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]
Substitua:
COMMA_SEPARATED_IP
: os endereços IP dos nós a serem redefinidos, como10.200.0.8,10.200.0.9
.CLUSTER_NAME
: o nome do cluster de destino que contém os nós com falha.KUBECONFIG_FILE
: o caminho para o arquivokubeconfig
do cluster de administrador.
Se os nós com falha faziam parte dos pools de nós do balanceador de carga, após a recuperação, eles podem competir pelo endereço IP virtual do plano de controle e tornar o novo cluster instável. Execute os comandos de redefinição nos nós com falha assim que possível depois de recuperá-los.
Esse processo lida apenas com a recuperação de desastres para uma implantação de alta disponibilidade do plano de controle de três nós. Esse processo não oferece suporte à recuperação de configurações de alta disponibilidade com cinco nós ou mais.
A seguir
Para mais informações sobre como adicionar ou remover nós de um cluster quando não houver falha e verificar o status do nó, consulte Atualizar clusters.
- Se precisar de mais ajuda, entre em contato com o Cloud Customer Care.