Diagnosticando e Solucionando Problemas de Nós para Clusters do Kubernetes com o Node Doctor Script

Descubra como usar o script Node Doctor para ajudá-lo a resolver problemas com instâncias de computação que hospedam nós de trabalho em clusters que você criou usando o Kubernetes Engine (OKE).

O script do Node Doctor é pré-instalado em instâncias de computação de nó gerenciadas para ajudar a resolver problemas com as instâncias. Dependendo de como você o executa, o script Node Doctor:

  • Imprime saída de solução de problemas que identifica possíveis áreas problemáticas, com links para documentação para abordar essas áreas.
  • Coleta informações do sistema em um pacote. O My Oracle Support (MOS) fornece instruções para fazer upload do pacote para um ticket de suporte.

Se você vir nós de trabalho com uma condição de nó do Kubernetes diferente de "ativo" ou com um estado do nó diferente de "pronto", use o script Node Doctor para solucionar os problemas.

Você pode executar o script Node Doctor das seguintes maneiras:

  • usando SSH
  • usando o recurso Run Command

O Worker Node Troubleshooting Guide é uma maneira conveniente de iniciar o script Node Doctor na Console. O Worker Node Troubleshooting Guide fornece comandos preenchidos dinamicamente para executar o script Node Doctor usando SSH ou o recurso Run Command. Para acessar o Guia de Solução de Problemas do Nó de Trabalho, clique no botão Solucionar Problemas de Nós na página Detalhes do Pool de Nós, selecione Conexões SSH ou Executar Comando e siga as instruções.

Observação

  • O script Node Doctor é pré-instalado nas instâncias do nó de trabalho criadas a partir de 19 de julho de 2021. Os nós de trabalho criados antes de 19 de julho de 2021 não têm o script Node Doctor pré-instalado. Para saber como instalar o script do Node Doctor, consulte Fazendo Download, Instalando e Atualizando o Script do Node Doctor. Observe que, para instalar o script Node Doctor nesses nós, você deve ter acesso SSH a eles.
  • A Oracle lança novas versões do script Node Doctor periodicamente. Antes de executar o script do Node Doctor pela primeira vez (mesmo nos nós de trabalho criados após 19 de julho de 2021), siga as instruções em Fazendo Download, Instalando e Atualizando o Script do Node Doctor para atualizar o script para a versão mais recente. Também é recomendável uma boa prática atualizar o script Node Doctor de tempos em tempos.
  • Você pode executar o script Node Doctor em nós de trabalho em pools de nós gerenciados, mas não em pools de nós virtuais.

Usando o Recurso Run Command para Executar o Node Doctor Script

Você pode usar o recurso Executar Comando para solucionar problemas de nós e gerar um pacote de suporte usando o script Node Doctor. Para obter mais informações sobre como usar o recurso Executar Comando, consulte Executando Comandos em uma Instância.

Para executar o script Node Doctor usando o recurso Run Command, execute um dos seguintes procedimentos:

  • Use o Worker Node Troubleshooting Guide. Na página Detalhes do Pool de Nós, clique em Diagnosticar e Solucionar Problemas de Nós para exibir o Guia de Solução de Problemas do Nó de Trabalho, selecione Executar Comando e siga as instruções.
  • Siga as etapas desta seção.

Política Obrigatória do Serviço IAM

Para administradores: Para criar uma política para o recurso do Comando de Execução, faça o seguinte:

  1. Escreva a seguinte política para permitir que qualquer usuário use o recurso Executar Comando para emitir comandos, cancelar comandos e exibir a saída do comando das instâncias em um compartimento:
    Allow any-user to use instance-agent-command-execution-family in compartment id <compartment-ocid> where request.instance.id=target.instance.id
  2. Se você quiser salvar a saída do script Node Doctor em um bucket do Object Storage, crie a seguinte política:

    Allow any-user to manage objects in compartment id <compartment-ocid-of-bucket> where all { request.principal.type='instance', request.principal.compartment.id='<compartment-ocid-of-node>', target.bucket.name = '<bucket-name>' }
    

    em que:

    • <compartment-ocid-of-bucket> é o OCID do compartimento ao qual o bucket de Armazenamento de Objetos pertence.
    • <compartment-ocid-of-node> é o OCID do compartimento ao qual a instância do nó de trabalho pertence.

Criando o Comando para Executar o Script Node Doctor

Para criar o comando a fim de executar o script Node Doctor na instância:

  1. Na página Detalhes do Cluster, clique em Grupos de Nós e clique no pool de nós gerenciados que contém o nó gerenciado que você deseja diagnosticar e solucionar problemas.
  2. Em Nós, clique no nome do nó que você deseja diagnosticar e solucionar problemas para exibir a página Detalhes da Instância.
  3. Em Recursos, clique em Comando de Execução.
  4. Clique em Criar Comando.
  5. Digite um nome para o comando. Evite fornecer informações confidenciais.
  6. Na caixa Timeout em segundos, digite o tempo a ser concedido ao plug-in Compute Instance Run Command para executar o comando na instância antes do timeout. O temporizador começa quando o plug-in inicia o comando. Para nenhum timeout, digite 0.
  7. Na seção Adicionar script, faça upload do script que você deseja que o plug-in Compute Instance Run Command execute na instância. Selecione a opção Colar script e cole um dos seguintes comandos na caixa:
    • sudo /usr/local/bin/node-doctor.sh --check para imprimir a saída de solução de problemas que identifica possíveis áreas problemáticas, com links para a documentação para abordar essas áreas.
    • sudo /usr/local/bin/node-doctor.sh --generate &> /dev/null && cat /tmp/oke-support-bundle.tar para coletar informações do sistema em um pacote. O My Oracle Support (MOS) fornece instruções para fazer upload do pacote para um ticket de suporte.
  8. Na seção Tipo de saída, selecione o local para salvar a saída do comando:
    • Saída como texto: A saída é salva como texto sem formatação. Você pode revisar a saída na página Detalhes da Instância.
    • Saída para um bucket do serviço Object Storage: A saída é salva em um bucket do serviço Object Storage. Selecione um bucket. Na caixa Nome do objeto, digite um nome para o arquivo de saída. Evite fornecer informações confidenciais.
    • Saída para um URL do serviço Object Storage: A saída é salva em um URL do serviço Object Storage. Informe o URL.
  9. Clique em Criar Comando.

Exibindo a Saída do Node Doctor Script

Como exibir a saída do script Node Doctor depende se a saída foi salva em um local do Object Storage ou como um arquivo de texto simples, da seguinte forma:

  1. Se a saída do script do Node Doctor tiver sido salva em um local do Object Storage, execute um dos seguintes procedimentos:
  2. Se a saída do script do Node Doctor tiver sido salva como arquivo sem formatação, faça o seguinte:
    1. Abra o menu de navegação e clique em Compute. Em Compute, clique em Instâncias.
    2. Clique na instância em que você está interessado.
    3. Em Recursos, clique em Comando de Execução.
    4. Localize o comando na lista, clique no menu Ações (Menu Ações) e, em seguida, clique em Exibir Detalhes do Comando.

Usando SSH para Executar o Node Doctor Script

Se você tiver acesso SSH a um nó gerenciado, poderá executar o script Node Doctor usando SSH para solucionar problemas de nó e gerar um pacote de suporte usando o script Node Doctor.

Para executar o script Node Doctor usando SSH, faça o seguinte:

  • Use o Worker Node Troubleshooting Guide. Na página Detalhes do Pool de Nós, clique em Diagnosticar e Solucionar Problemas de Nós para exibir o Guia de Solução de Problemas do Nó de Trabalho, selecione Conexões SSH e siga as instruções.
  • Siga as etapas desta seção.
  1. Estabeleça uma conexão SSH com a instância do nó de trabalho na qual você deseja executar o script Node Doctor.
    Para obter instruções detalhadas para estabelecer uma conexão SSH, consulte Estabelecendo Conexão com Nós Gerenciados Usando SSH. Em alto nível, as etapas são:
    1. Descubra o endereço IP da instância do nó de trabalho que você deseja solucionar e anote-o.

      Por exemplo, na página Detalhes do Cluster, clique em Grupos de Nós e, em seguida, clique no pool de nós que contém o nó de trabalho. Clique em Nós e, em seguida, clique no nome do nó desejado para exibir a página Detalhes da Instância. O endereço IP da instância é mostrado na guia Informações da Instância.

    2. Em uma janela de terminal, digite ssh opc@<node_ip_address> para se conectar ao nó de trabalho, em que <node_ip_address> corresponde ao endereço IP da instância do nó de trabalho que você anotou anteriormente. Por exemplo, você poderia inserir:
      ssh opc@192.0.2.254
      Se a chave privada SSH não estiver armazenada no arquivo ou no caminho esperado pelo utilitário SSH (por exemplo, o utilitário SSH pode esperar que a chave privada seja armazenada em ~/.ssh/id_rsa), você deverá especificar explicitamente o nome do arquivo e o local da chave privada. Para obter mais informações, consulte Conectando-se a Nós Gerenciados Usando SSH.
  2. Na janela de terminal na qual você estabeleceu a conexão SSH com a instância do nó de trabalho, digite um dos seguintes comandos:
    • sudo /usr/local/bin/node-doctor.sh --check para imprimir a saída de solução de problemas que identifica possíveis áreas problemáticas, com links para a documentação para abordar essas áreas.
    • sudo /usr/local/bin/node-doctor.sh --generate para coletar informações do sistema em um pacote. O My Oracle Support (MOS) fornece instruções para fazer upload do pacote para um ticket de suporte.

Fazendo Download, Instalando e Atualizando o Script do Node Doctor

Os nós de trabalho criados a partir de 19 de julho de 2021 já têm o script Node Doctor pré-instalado.

Os nós de trabalho criados antes de 19 de julho de 2021 não têm o script Node Doctor pré-instalado. Para executar o script Node Doctor em tal nó de trabalho, você deve fazer download e instalar o script. Para fazer download e instalar o script do Node Doctor, você deve ter acesso SSH ao nó de trabalho.

Observação

Periodicamente, a Oracle lança novas versões do script Node Doctor. Antes de executar o script Node Doctor pela primeira vez (mesmo nos nós de trabalho criados após 19 de julho de 2021), siga a etapa final nas instruções abaixo para atualizar o script para a versão mais recente. Também é recomendável uma boa prática atualizar o script Node Doctor de tempos em tempos.

Para fazer download, instalar e atualizar o script Node Doctor em um nó gerenciado:

  1. Estabeleça uma conexão SSH com o nó de trabalho.
    Para obter instruções detalhadas para estabelecer uma conexão SSH, consulte Estabelecendo Conexão com Nós Gerenciados Usando SSH. Em alto nível, as etapas são:
    1. Descubra o endereço IP da instância do nó de trabalho que você deseja solucionar e anote-o.

      Por exemplo, na página Detalhes do Cluster, clique em Grupos de Nós e, em seguida, clique no pool de nós que contém o nó de trabalho. Clique em Nós e, em seguida, clique no nome do nó para exibir a página Detalhes da Instância. O endereço IP da instância é mostrado na guia Informações da Instância.

    2. Em uma janela de terminal, digite ssh opc@<node_ip_address> para se conectar ao nó de trabalho, em que <node_ip_address> corresponde ao endereço IP do nó de trabalho que você fez uma observação anterior. Por exemplo, você poderia inserir:
      ssh opc@192.0.2.254
      Se a chave privada SSH não estiver armazenada no arquivo ou no caminho esperado pelo utilitário SSH (por exemplo, o utilitário SSH pode esperar que a chave privada seja armazenada em ~/.ssh/id_rsa), você deverá especificar explicitamente o nome do arquivo e o local da chave privada. Para obter mais informações, consulte Conectando-se a Nós Gerenciados Usando SSH.
  2. Na janela de terminal na qual você estabeleceu a conexão SSH com o nó de trabalho, faça download do script Node Doctor e instale-o no diretório /usr/local/bin digitando:
    sudo curl -s -X GET https://objectstorage.<region-name>.oraclecloud.com/n/odx-oke/b/public/o/artifacts/prd/workernode/14d06c9-431/node-doctor --output /usr/local/bin/node-doctor.sh

    em que <region-name> é a região na qual o cluster está localizado. Por exemplo:

    sudo curl -s -X GET https://objectstorage.us-ashburn-1.oraclecloud.com/n/odx-oke/b/public/o/artifacts/prd/workernode/14d06c9-431/node-doctor --output /usr/local/bin/node-doctor.sh

    Antes de executar o script Node Doctor pela primeira vez, conclua a próxima etapa.

  3. Quando o script do Node Doctor tiver sido baixado e instalado no nó de trabalho, obtenha a versão mais recente do script do Node Doctor digitando:

    sudo /usr/local/bin/node-doctor.sh --update

    Recomenda-se uma boa prática manter o script Node Doctor atualizado executando o comando acima de tempos em tempos.

Agora, você pode usar o script do Node Doctor para diagnosticar e solucionar problemas de nó de trabalho.