This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Monitoramento, Registro de Logs e Depuração

Configure o monitoramento e os logs para solucionar problemas em um cluster ou depurar uma aplicação containerizada.

Às vezes, as coisas dão errado. Este guia tem como objetivo ajudá-lo a corrigir esses problemas. Ele está dividido em duas seções:

  • Depurando sua aplicação - Útil para usuários que estão implantando código no Kubernetes e se perguntando por que não está funcionando.
  • Depurando seu cluster - Útil para administradores de clusters e para aqueles cujo cluster Kubernetes está apresentando problemas.

Você também deve verificar os problemas conhecidos da versão que está utilizando.

Obtendo ajuda

Se o seu problema não for resolvido por nenhum dos guias acima, há várias maneiras de obter ajuda da comunidade Kubernetes.

Perguntas

A documentação neste site foi estruturada para fornecer respostas a uma ampla gama de perguntas. Conceitos explicam a arquitetura do Kubernetes e como cada componente funciona, enquanto Configuração oferece instruções práticas para começar. Tarefas mostram como realizar tarefas comumente utilizadas, e os Tutoriais são guias mais abrangentes de cenários reais, específicos da indústria ou de desenvolvimento completo de ponta a ponta. A seção de Referência fornece documentação detalhada sobre a API do Kubernetes e as interfaces de linha de comando (CLIs), como kubectl.

Socorro! Minha pergunta não foi respondida! Preciso de ajuda agora!

Stack Exchange, Stack Overflow ou Server Fault

Se você tem dúvidas relacionadas ao desenvolvimento de software para sua aplicação containerizada, você pode perguntar no Stack Overflow.

Se você tem perguntas sobre Kubernetes relacionadas à gestão do cluster ou configuração, você pode perguntar no Server Fault.

Também existem vários sites mais específicos na rede Stack Exchange que podem ser o lugar certo para perguntar sobre Kubernetes em áreas como DevOps, Engenharia de Software ou Segurança da Informação.

Alguém da comunidade pode já ter feito uma pergunta semelhante ou pode ser capaz de ajudar com o seu problema.

A equipe do Kubernetes também monitora os posts marcados como Kubernetes. Se não houver perguntas existentes que ajudem, certifique-se de que sua pergunta está no escopo do Stack Overflow, Server Fault, ou do site da rede Stack Exchange que você escolheu, e leia as orientações sobre como fazer uma nova pergunta, antes de postar uma nova!

Slack

Muitas pessoas da comunidade Kubernetes estão no Slack do Kubernetes no canal #kubernetes-users. O Slack requer registro; você pode solicitar um convite, e o registro está aberto para todos. Sinta-se à vontade para entrar e fazer qualquer tipo de pergunta.

Após se registrar, acesse a organização Kubernetes no Slack via seu navegador ou pelo aplicativo dedicado do Slack.

Depois de registrado, explore a lista crescente de canais para vários assuntos de interesse. Por exemplo, novos usuários do Kubernetes podem querer entrar no canal #kubernetes-novice. Desenvolvedores devem entrar no canal #kubernetes-contributors.

Também existem muitos canais específicos por país/idioma. Sinta-se à vontade para entrar nesses canais para suporte localizado e informações:

Canais do Slack específicos por país/idioma
PaísCanais
China#cn-users, #cn-events
Finlândia#fi-users
França#fr-users, #fr-events
Alemanha#de-users, #de-events
Índia#in-users, #in-events
Itália#it-users, #it-events
Japão#jp-users, #jp-events
Coreia#kr-users
Países Baixos#nl-users
Noruega#norw-users
Polônia#pl-users
Rússia#ru-users
Espanha#es-users
Suécia#se-users
Turquia#tr-users, #tr-events

Fórum

Você é bem-vindo para participar do fórum oficial do Kubernetes: discuss.kubernetes.io.

Relatórios de bugs e solicitações de recursos

Se você encontrou o que parece ser um bug ou deseja solicitar uma nova funcionalidade, use o sistema de rastreamento de problemas no GitHub.

Antes de registrar um problema, pesquise os problemas existentes para verificar se sua questão já foi abordada.

Se for relatar um bug, inclua informações detalhadas sobre como reproduzir o problema, como:

  • Versão do Kubernetes: kubectl version
  • Provedor de nuvem, distribuição do SO, configuração de rede e versão do runtime do container
  • Passos para reproduzir o problema

1 - Solução de Problemas em Aplicações

Depuração de problemas comuns em aplicações conteinerizadas.

Este documento contém um conjunto de recursos para solucionar problemas em aplicações conteinerizadas. Ele aborda questões comuns relacionadas a recursos do Kubernetes (como Pods, Services e StatefulSets), orientações para interpretar mensagens de término de contêineres e métodos para depurar contêineres em execução.

1.1 - Depurando Contêineres de Inicialização

Esta página mostra como investigar problemas relacionados à execução de contêineres de inicialização. As linhas de comando de exemplo abaixo referem-se ao pod como <pod-name> e aos contêineres de inicialização como <init-container-1> e <init-container-2>.

Antes de você começar

Você precisa ter um cluster do Kubernetes e a ferramenta de linha de comando kubectl deve estar configurada para se comunicar com seu cluster. É recomendado executar esse tutorial em um cluster com pelo menos dois nós que não estejam atuando como hosts de camada de gerenciamento. Se você ainda não possui um cluster, pode criar um usando o minikube ou pode usar um dos seguintes ambientes:

Para verificar a versão, digite kubectl version.

Verificando o status dos contêineres de inicialização

Exiba o status do seu pod:

kubectl get pod <pod-name>

Por exemplo, um status de Init:1/2 indica que uma das duas inicializações de contêineres concluíram com sucesso:

NAME         READY     STATUS     RESTARTS   AGE
<pod-name>   0/1       Init:1/2   0          7s

Consulte Entendendo sobre o status do pod para obter mais exemplos de valores de status e seus significados.

Obtendo detalhes sobre os contêineres de inicialização

Veja informações mais detalhadas sobre a execução de contêineres de inicialização:

kubectl describe pod <pod-name>

Por exemplo, um pod com dois contêineres de inicialização pode mostrar o seguinte:

Init Containers:
  <init-container-1>:
    Container ID:    ...
    ...
    State:           Terminated
      Reason:        Completed
      Exit Code:     0
      Started:       ...
      Finished:      ...
    Ready:           True
    Restart Count:   0
    ...
  <init-container-2>:
    Container ID:    ...
    ...
    State:           Waiting
      Reason:        CrashLoopBackOff
    Last State:      Terminated
      Reason:        Error
      Exit Code:     1
      Started:       ...
      Finished:      ...
    Ready:           False
    Restart Count:   3
    ...

Você também pode acessar programaticamente os status dos contêineres de inicialização, lendo o campo status.initContainerStatuses nas especificações do pod:

kubectl get pod nginx --template '{{.status.initContainerStatuses}}'

Este comando retornará as mesmas informações acima em JSON bruto.

Acessando logs de contêineres de inicialização

Passe o nome do contêiner de inicialização junto com o nome do Pod para acessar seus logs.

kubectl logs <pod-name> -c <init-container-2>

Contêineres de inicialização que executam comandos de script de shell imprimem à medida que são executados. Por exemplo, você pode fazer isso no Bash executando set -x no início do script.

Entendendo sobre o status do pod

Um status do Pod começando com Init: resume o status da execução de contêineres de inicialização. A tabela abaixo descreve alguns valores de status de exemplo que você pode ver durante a depuração de contêineres de inicialização.

StatusSignificado
Init:N/MO pod tem contêineres de inicialização M e N que foram concluídas até agora.
Init:ErrorUm contêiner de inicialização falhou ao executar.
Init:CrashLoopBackOffUm contêiner de inicialização falhou repetidamente.
PendingO pod ainda não começou a executar o contêiner de inicialização.
PodInitializing ou RunningO pod já concluiu a execução dos contêineres de inicialização.