Repare nós automaticamente

Esta página explica como funciona a autorreparação de nós e como usar a funcionalidade para clusters do Google Kubernetes Engine (GKE) padrão.

A autorreparação de nós ajuda a manter os nós no seu cluster do GKE num estado de funcionamento saudável. Quando ativado, o GKE faz verificações periódicas ao estado de funcionamento de cada nó no seu cluster. Se um nó falhar verificações de estado consecutivas durante um período prolongado, o GKE inicia um processo de reparação para esse nó.

Definições do modo automático e padrão

Os clusters do Autopilot reparam sempre os nós automaticamente. Não pode desativar esta definição.

Nos clusters padrão, a autorreparação de nós está ativada por predefinição para novos conjuntos de nós. Pode desativar a reparação automática para um conjunto de nós existente. No entanto, recomendamos que mantenha a configuração predefinida.

Critérios de reparação

O GKE usa o estado de funcionamento do nó para determinar se um nó precisa de ser reparado. Um nó que comunica um estado Ready é considerado em bom estado. O GKE aciona uma ação de reparação se um nó comunicar relatórios de estado não saudável consecutivos durante um determinado limite de tempo. Um estado não saudável pode significar:

  • Um nó comunica um estado NotReady em verificações consecutivas durante o limite de tempo indicado (aproximadamente 10 minutos).
  • Um nó não comunica nenhum estado durante o limite de tempo indicado (aproximadamente 10 minutos).
  • O disco de arranque de um nó está sem espaço no disco durante um período prolongado (aproximadamente 30 minutos).
  • Um nó num cluster do Autopilot está isolado durante mais tempo do que o limite de tempo indicado (aproximadamente 10 minutos).

Pode verificar manualmente os sinais de estado do seu nó em qualquer altura através do comando kubectl get nodes.

Processo de reparação de nós

Se o GKE detetar que um nó requer reparação, o nó é esvaziado e recriado. Este processo preserva o nome original do nó. O GKE aguarda uma hora até que a drenagem seja concluída. Se a drenagem não for concluída, o nó é encerrado e é criado um novo nó.

Se vários nós precisarem de reparação, o GKE pode reparar os nós em paralelo. O GKE equilibra o número de reparações consoante o tamanho do cluster e o número de nós danificados. O GKE repara mais nós em paralelo num cluster maior, mas menos nós à medida que o número de nós não íntegros aumenta.

Se desativar a autorreparação de nós em qualquer altura durante o processo de reparação, as reparações em curso não são canceladas e continuam para qualquer nó em reparação.

Histórico de reparações de nós

O GKE gera uma entrada de registo para eventos de reparação automatizados. Pode verificar os registos executando o seguinte comando:

gcloud container operations list

Reparação automática de nós em nós de fatia de TPU

Se um nó de fatia da TPU num conjunto de nós de fatias da TPU com vários anfitriões não estiver em bom estado e precisar de reparação automática, o conjunto de nós inteiro é recriado. Para saber mais sobre as condições dos nós de fatia da TPU, consulte o artigo Reparação automática dos nós de fatia da TPU.

Ative a reparação automática para um conjunto de nós padrão existente

Ativa a autorreparação de nós com base em cada conjunto de nós.

Se a autorreparação estiver desativada num conjunto de nós existente num cluster padrão, use as seguintes instruções para a ativar:

Consola

  1. Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que quer modificar.

  3. Clique no separador Nós.

  4. Em Conjuntos de nós, clique no nome do conjunto de nós que quer modificar.

  5. Na página Detalhes do conjunto de nós, clique em Editar.

  6. Em Gestão, selecione a caixa de verificação Ativar reparação automática.

  7. Clique em Guardar.

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --enable-autorepair

Substitua o seguinte:

  • POOL_NAME: o nome do seu node pool.
  • CLUSTER_NAME: o nome do seu cluster padrão.
  • CONTROL_PLANE_LOCATION: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.

Verifique se a autorreparação de nós está ativada para um conjunto de nós padrão

A autorreparação de nós está ativada com base em cada conjunto de nós. Pode verificar se um conjunto de nós no seu cluster tem a autorreparação de nós ativada com a CLI Google Cloud ou a Trusted Cloud consola.

Consola

  1. Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Na página Google Kubernetes Engine, clique no nome do cluster do node pool que quer inspecionar.

  3. Clique no separador Nós.

  4. Em Conjuntos de nós, clique no nome do conjunto de nós que quer inspecionar.

  5. Em Gestão, no campo Reparação automática, verifique se a reparação automática está ativada.

gcloud

Descreva o node pool:

gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME

Se a autorreparação de nós estiver ativada, o resultado do comando inclui estas linhas:

management:
  ...
  autoRepair: true

Desative a autorreparação de nós

Pode desativar a autorreparação de nós para um conjunto de nós existente num cluster padrão através da CLI gcloud ou da Trusted Cloud consola.

Consola

  1. Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que quer modificar.

  3. Clique no separador Nós.

  4. Em Conjuntos de nós, clique no nome do conjunto de nós que quer modificar.

  5. Na página Detalhes do conjunto de nós, clique em Editar.

  6. Em Gestão, desmarque a caixa de verificação Ativar reparação automática.

  7. Clique em Guardar.

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --no-enable-autorepair

Substitua o seguinte:

  • POOL_NAME: o nome do seu node pool.
  • CLUSTER_NAME: o nome do seu cluster padrão.
  • CONTROL_PLANE_LOCATION: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.

O que se segue?