Como depurar problemas de nós

Nesta página, explicamos como depurar problemas de nós usando um conjunto de ferramentas de depuração pré-instaladas.

Visão geral

Cada cluster do GKE On-Prem criado é composto por vários nós. Cada nó do GKE On-Prem inclui uma distribuição do CoreOS toolbox (em inglês), um script de shell que descompacta e executa um contêiner de depuração, debug-toolbox. debug-toolbox é uma imagem de contêiner que inclui várias ferramentas de depuração úteis.

Se encontrar problemas em um nó específico, tente depurar se conectando ao nó afetado, executando o script toolbox para descompactar e executar o contêiner debug-toolbox e executando as ferramentas incluídas nele.

Ferramentas incluídas no contêiner debug-toolbox

O contêiner debug-toolbox executa uma imagem base do Debian que inclui os pacotes a seguir:

  • bash
  • curl
  • dnsutils
  • hping3
  • iperf3
  • lsof
  • netcat
  • mtr
  • procps
  • strace
  • tcpdump
  • traceroute
  • util-linux

Como essas ferramentas estão incluídas no contêiner, elas não exigem uma conexão de Internet. Se você quiser instalar outras ferramentas de depuração, use apt-get, que requer uma conexão de Internet.

Utilizando toolbox

  1. SSH no nó de cluster.

  2. Execute o comando toolbox:

    sudo toolbox

    Esse comando inicia um contêiner debug-toolbox.

  3. Enquanto estiver dentro do contêiner, execute uma das ferramentas. Por exemplo, tcpdump.

  4. Quando terminar, saia do contêiner e feche a conexão SSH com o nó.

Detector de problemas de nós

A partir da versão 1.4 do GKE On-Prem, o Detector de problemas de nós, que está ativado para todos os nós em um cluster, ajuda na detecção rápida de alguns problemas comuns de nós. O Detecção de problemas de nós continua verificando possíveis problemas e relata os mesmos problemas que eventos e condições no nó. Se um nó falhar, verifique se o Detector de problema de nó detectou o problema executando kubectl describe no nó e procurando os eventos e condições correspondentes.

Os monitores do Detector de problemas de nós geram várias condições no nó. Se a condição reportada for KubeletUnhealthy ou ContainerRuntimeUnhealthy, a reinicialização do serviço systemd correspondente (kubelet ou Docker) poderá ajudar a tornar o nó íntegro novamente.

A partir da versão 1.5 do GKE On-Prem, o reparo automático de serviço do kubelet e do docker está ativado no Detector de problema de nó. Se o Detector de problema de nó encontrar uma condição KubeletUnhealthy ou ContainerRuntimeUnhealthy no nó, ele tentará reiniciar automaticamente o serviço kubelet ou docker (isso se a duração desde a última reinicialização for maior que um determinado limite).