Quando um pod falha ou um serviço não funciona como esperado no Google Kubernetes Engine (GKE), é fundamental entender a sequência de eventos que levaram ao problema. Inspecionar o estado atual nem sempre é suficiente para encontrar a causa raiz, o que torna os dados de registros históricos muito importantes.
Use esta página para aprender a usar o Cloud Logging e investigar falhas anteriores (por exemplo, por que um pod não foi iniciado ou quem excluiu uma implantação crítica) consultando e analisando registros do GKE.
Essas informações são importantes para administradores e operadores de plataforma que precisam realizar análises de causa raiz em problemas em todo o cluster, auditar mudanças e entender tendências de comportamento do sistema. Também é essencial para desenvolvedores de aplicativos depurarem erros específicos do aplicativo, rastrearem caminhos de solicitação e entenderem como o código se comporta no ambiente do GKE ao longo do tempo. Para mais informações sobre os papéis comuns e as tarefas de exemplo referenciados no conteúdo do Google Cloud , consulte Funções e tarefas de usuário comuns do GKE.
Entender os principais tipos de registros para solução de problemas
Para ajudar na solução de problemas, o Cloud Logging coleta e agrega automaticamente vários tipos de registros importantes dos clusters do GKE, apps contêinerizados e outros serviços doGoogle Cloud :
Registros de nó e de ambiente de execução (
kubelet
,containerd
): os registros dos serviços de nó subjacentes. Como okubelet
gerencia o ciclo de vida de todos os pods no nó, os registros dele são essenciais para resolver problemas como inicializações de contêineres, eventos de falta de memória (OOM), falhas de sondagem e erros de montagem de volume. Esses registros também são essenciais para diagnosticar problemas no nível do nó, como um nó com statusNotReady
.Como o containerd gerencia o ciclo de vida dos contêineres, incluindo o pull de imagens, os registros dele são cruciais para resolver problemas que acontecem antes que o kubelet possa iniciar o contêiner. Os registros do containerd ajudam a diagnosticar problemas no nível do nó no GKE, porque documentam as atividades específicas e os possíveis erros do ambiente de execução do contêiner.
Registros do app (
stdout
,stderr
): os streams de saída e erro padrão dos seus processos em contêineres. Esses registros são essenciais para depurar problemas específicos do app, como falhas, erros ou comportamento inesperado.Registros de auditoria: respondem "quem fez o quê, onde e quando?" para seu cluster. Eles rastreiam ações administrativas e chamadas de API feitas para o servidor da API Kubernetes, o que é útil para diagnosticar problemas causados por mudanças de configuração ou acesso não autorizado.
Cenários comuns de solução de problemas
Depois de identificar um problema, você pode consultar esses registros para saber o que aconteceu. Para ajudar você a começar, a análise de registros pode ajudar com estes problemas:
- Se um nó tiver um status
NotReady
, analise os registros dele. Os registroskubelet
econtainerd
geralmente revelam a causa subjacente, como problemas de rede ou restrições de recursos. - Se um novo nó não for provisionado e não entrar no cluster, analise os registros da porta serial do nó. Esses registros capturam a atividade de inicialização antecipada e de inicialização do kubelet antes que os agentes de registro do nó estejam totalmente ativos.
- Se um pod não tiver sido iniciado no passado, revise os registros do app para esse pod e verifique se há falhas. Se os registros estiverem vazios ou o pod não puder ser programado, verifique os registros de auditoria para eventos relevantes ou os registros de nós no nó de destino para encontrar pistas sobre pressão de recursos ou erros de extração de imagens.
- Se uma implantação crítica foi excluída e ninguém sabe o motivo, consulte os registros de auditoria da Atividade do administrador. Esses registros podem ajudar você a identificar qual usuário ou conta de serviço emitiu a chamada da API de exclusão, fornecendo um ponto de partida claro para sua investigação.
Como acessar registros
Use a Análise de registros para consultar, visualizar e analisar registros do GKE no console Google Cloud . A Análise de registros oferece opções avançadas de filtragem que ajudam a isolar o problema.
Para acessar e usar o Explorador de registros, siga estas etapas:
No console do Google Cloud , acesse a página Análise de registros.
No painel de consulta, insira uma consulta. Use a linguagem de consulta do Logging para escrever consultas segmentadas. Confira alguns filtros comuns para começar:
Tipo de filtro Descrição Valor de exemplo resource.type
O tipo de recurso do Kubernetes. k8s_cluster
,k8s_node
,k8s_pod
,k8s_container
log_id
O fluxo de registros do recurso. stdout
,stderr
resource.labels.RESOURCE_TYPE.name
Filtre recursos com um nome específico.
SubstituaRESOURCE_TYPE
pelo nome do recurso que você quer consultar. Por exemplo,namespace
oupod
.example-namespace-name
,example-pod-name
severity
O nível de gravidade do registro. DEFAULT
,INFO
,WARNING
,ERROR
,CRITICAL
jsonPayload.message=~
Uma pesquisa de expressão regular por texto na mensagem de registro. scale.down.error.failed.to.delete.node.min.size.reached
Por exemplo, para resolver problemas com um pod específico, talvez seja necessário isolar os registros de erros dele. Para ver apenas os registros com uma gravidade
ERROR
para esse pod, use a seguinte consulta:resource.type="k8s_container" resource.labels.pod_name="POD_NAME" resource.labels.namespace_name="NAMESPACE_NAME" severity=ERROR
Substitua:
POD_NAME
: o nome do pod com problemas.NAMESPACE_NAME
: o namespace em que o pod está. Se você não tiver certeza do namespace, revise a colunaNamespace
na saída do comandokubectl get pods
.
Para mais exemplos, consulte Consultas relacionadas ao Kubernetes na documentação do Google Cloud Observability.
Clique em Executar consulta.
Para conferir a mensagem de registro completa, incluindo o payload JSON, metadados e carimbo de data/hora, clique na entrada de registro.
Para mais informações sobre os registros do GKE, consulte Sobre os registros do GKE.
A seguir
Leia Realizar monitoramento proativo com o Cloud Monitoring (a próxima página desta série).
Confira esses conceitos aplicados no exemplo de cenário de solução de problemas.
Para receber conselhos sobre como resolver problemas específicos, consulte os guias de solução de problemas do GKE.
Se você não encontrar uma solução para seu problema na documentação, consulte Receber suporte para mais ajuda, incluindo conselhos sobre os seguintes tópicos:
- Abrir um caso de suporte entrando em contato com o Cloud Customer Care.
- Receber suporte da comunidade fazendo perguntas no StackOverflow e usando a tag
google-kubernetes-engine
para pesquisar problemas semelhantes. Você também pode participar do canal do Slack#kubernetes-engine
para receber mais suporte da comunidade. - Abrir bugs ou solicitações de recursos usando o Issue Tracker público.