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. A inspeção do estado atual nem sempre é suficiente para encontrar a causa raiz, o que torna os dados de registro históricos inestimáveis.
Use esta página para aprender a usar o Cloud Logging para investigar falhas anteriores (por exemplo, por que um pod não foi iniciado ou quem excluiu uma implantação crítica) consultando e analisando os 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 de cluster, auditar mudanças e entender as tendências de comportamento do sistema. Elas também são essenciais para desenvolvedores de aplicativos para depurar erros específicos do aplicativo, rastrear caminhos de solicitação e entender como o código se comporta no ambiente do GKE ao longo do tempo. Para mais informações sobre os papéis comuns e os exemplos de tarefas que referenciamos no Google Cloud content, consulte Papéis e tarefas de usuário comuns do GKE.
Entender os principais tipos de registro para solução de problemas
Para ajudar na solução de problemas, o Cloud Logging coleta e agrega automaticamente vários tipos de registro importantes dos clusters do GKE, apps conteinerizados e outros Google Cloud serviços:
Registros de nós e de ambiente de execução (
kubelet,containerd): os registros dos serviços de nós subjacentes. Como okubeletgerencia o ciclo de vida de todos os pods no nó, os registros dele são essenciais para solucionar problemas como inicializações de contêineres, eventos de falta de memória (OOM, na sigla em inglês), falhas de investigação 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 o statusNotReady.Como o containerd gerencia o ciclo de vida dos contêineres, incluindo o extração de imagens, os registros dele são essenciais para solucionar 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 de apps (
stdout,stderr): a saída padrão e os streams de erro dos processos conteinerizados. Esses registros são essenciais para depurar problemas específicos do app, como falhas, erros ou comportamento inesperado.Registros de auditoria: esses registros respondem a perguntas como "quem fez o quê, onde e quando?" para o 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 descobrir o que aconteceu. Para começar, a revisão dos registros pode ajudar com estes problemas:
- Se um nó tiver o status
NotReady, revise os registros dele. Os registroskubeletecontainerdgeralmente 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, revise os registros da porta serial do nó . Esses registros capturam a inicialização antecipada e a atividade de inicialização do kubelet antes que os agentes de registro do nó estejam totalmente ativos.
- Se um pod não foi iniciado no passado, revise os registros do app desse pod para verificar 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 imagem.
- 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 a identificar qual usuário ou conta de serviço emitiu a chamada de API de exclusão, fornecendo um ponto de partida claro para a investigação.
Como acessar registros
Use a Análise de registros para consultar, visualizar e analisar os registros do GKE no Google Cloud console. A Análise de registros oferece opções de filtragem avançadas que ajudam a isolar o problema.
Para acessar e usar a Análise de registros, siga estas etapas:
No Google Cloud console do, 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 direcionadas. Confira alguns filtros comuns para começar:
Tipo de filtro Descrição Valor de exemplo resource.typeO tipo de recurso do Kubernetes. k8s_cluster,k8s_node,k8s_pod,k8s_containerlog_idO stream de registro do recurso. stdout,stderrresource.labels.RESOURCE_TYPE.nameFiltrar recursos com um nome específico.
SubstituaRESOURCE_TYPEpelo nome do recurso que você quer consultar. Por exemplo,namespaceoupod.example-namespace-name,example-pod-nameseverityO nível de gravidade do registro. DEFAULT,INFO,WARNING,ERROR,CRITICALjsonPayload.message=~Uma pesquisa de expressão regular para texto na mensagem de registro. scale.down.error.failed.to.delete.node.min.size.reachedPor exemplo, para solucionar problemas de um pod específico, talvez você queira isolar os registros de erros dele. Para ver apenas os registros com uma gravidade
ERRORpara esse pod, use a seguinte consulta:resource.type="k8s_container" resource.labels.pod_name="POD_NAME" resource.labels.namespace_name="NAMESPACE_NAME" severity=ERRORSubstitua:
POD_NAME: o nome do pod que está com problemas.NAMESPACE_NAME: o namespace em que o pod está. Se você não tiver certeza do namespace, revise a colunaNamespacena 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 ver a mensagem de registro completa, incluindo o payload JSON, os metadados e o 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 cenário de solução de problemas de exemplo.
Para receber orientações 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 o problema na documentação, consulte Receber suporte para mais ajuda, incluindo orientações sobre os seguintes tópicos:
- Como abrir um caso de suporte entrando em contato com o Cloud Customer Care.
- Como receber suporte da comunidade fazendo
perguntas no StackOverflow
e usando a
google-kubernetes-enginetag para pesquisar problemas semelhantes. Você também pode participar do#kubernetes-enginecanal do Slack para receber mais suporte da comunidade. - Como abrir problemas ou solicitações de recursos usando o Issue Tracker público.