Quando um pod falha ou um serviço não funciona como esperado no Google Kubernetes Engine (GKE), é fundamental compreender a sequência de eventos que originaram o problema. A inspeção do estado atual nem sempre é suficiente para encontrar a causa principal, o que torna os dados do histórico de registos inestimáveis.
Use esta página para saber como usar o Cloud Logging para investigar falhas anteriores (por exemplo, por que motivo um pod não foi iniciado ou quem eliminou uma implementação crítica) consultando e analisando os registos do GKE.
Estas informações são importantes para os administradores e os operadores da plataforma que precisam de realizar uma análise da causa principal em problemas ao nível do cluster, auditar alterações e compreender as tendências de comportamento do sistema. Também é essencial para os programadores de aplicações depurarem erros específicos da aplicação, rastrearem caminhos de pedidos e compreenderem o comportamento do respetivo código no ambiente do GKE ao longo do tempo. Para mais informações sobre as funções comuns e exemplos de tarefas que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud
Compreenda os principais tipos de registos para a resolução de problemas
Para ajudar a resolver problemas, o Cloud Logging recolhe e agrega automaticamente vários tipos de registos importantes dos seus clusters do GKE, apps contentorizadas e outrosGoogle Cloud serviços:
Registos de nós e de tempo de execução (
kubelet
,containerd
): os registos dos serviços de nós subjacentes. Uma vez que okubelet
gere o ciclo de vida de todos os Pods no nó, os respetivos registos são essenciais para resolver problemas como inícios de contentores, eventos de falta de memória (OOM), falhas de sondagem e erros de montagem de volumes. Estes registos também são essenciais para diagnosticar problemas ao nível do nó, como um nó com o estadoNotReady
.Uma vez que o containerd gere o ciclo de vida dos seus contentores, incluindo a obtenção de imagens, os respetivos registos são cruciais para resolver problemas que ocorrem antes de o kubelet poder iniciar o contentor. Os registos do containerd ajudam a diagnosticar problemas ao nível do nó no GKE, porque documentam as atividades específicas e os potenciais erros do tempo de execução do contentor.
Registos da app (
stdout
,stderr
): as streams de saída e erro padrão dos processos contentorizados. Estes registos são essenciais para a depuração de problemas específicos da app, como falhas de sistema, erros ou comportamento inesperado.Registos de auditoria: estes registos respondem à pergunta "quem fez o quê, onde e quando?" para o seu cluster. Monitorizam as ações administrativas e as chamadas API feitas ao servidor da API Kubernetes, o que é útil para diagnosticar problemas causados por alterações de configuração ou acesso não autorizado.
Cenários de resolução de problemas comuns
Depois de identificar um problema, pode consultar estes registos para saber o que aconteceu. Para ajudar a começar, a revisão dos registos pode ajudar a resolver os seguintes problemas:
- Se um nó tiver um estado
NotReady
, reveja os respetivos registos de nós. Os registoskubelet
econtainerd
revelam frequentemente a causa subjacente, como problemas de rede ou restrições de recursos. - Se um novo nó não conseguir o aprovisionamento nem juntar-se ao cluster, reveja os registos da porta série do nó. Estes registos captam a atividade de arranque inicial e de início do kubelet antes de os agentes de registo do nó estarem totalmente ativos.
- Se um Pod não tiver sido iniciado no passado, reveja os registos da app desse Pod para verificar se existem falhas. Se os registos estiverem vazios ou não for possível agendar o Pod, verifique os registos de auditoria para ver eventos relevantes ou os registos do nó no nó de destino para encontrar pistas sobre a pressão dos recursos ou erros de obtenção de imagens.
- Se uma implementação crítica foi eliminada e ninguém sabe porquê, consulte os registos de auditoria da atividade de administrador. Estes registos podem ajudar a identificar que utilizador ou conta de serviço emitiu a chamada da API de eliminação, o que oferece um ponto de partida claro para a sua investigação.
Como aceder aos registos
Use o Explorador de registos para consultar, ver e analisar registos do GKE na Google Cloud consola. O Explorador de registos oferece opções de filtragem avançadas que ajudam a isolar o seu problema.
Para aceder e usar o Logs Explorer, conclua os seguintes passos:
Na Google Cloud consola, aceda à página Explorador de registos.
No painel de consultas, introduza uma consulta. Use a linguagem de consulta de registo para escrever consultas segmentadas. Seguem-se 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
A stream de registos do recurso. stdout
,stderr
resource.labels.RESOURCE_TYPE.name
Filtre recursos com um nome específico.
SubstituaRESOURCE_TYPE
pelo nome do recurso que quer consultar. Por exemplo,namespace
oupod
.example-namespace-name
,example-pod-name
severity
O nível de gravidade do registo. DEFAULT
,INFO
,WARNING
,ERROR
eCRITICAL
jsonPayload.message=~
Uma pesquisa de expressão regular para texto na mensagem de registo. scale.down.error.failed.to.delete.node.min.size.reached
Por exemplo, para resolver problemas de um Pod específico, pode querer isolar os respetivos registos de erros. Para ver apenas registos 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 o seguinte:
POD_NAME
: o nome do agrupamento que está a ter problemas.NAMESPACE_NAME
: o espaço de nomes em que o pod se encontra. Se não tiver a certeza do que é o espaço de nomes, reveja a colunaNamespace
a partir do resultado do comandokubectl get pods
.
Para ver mais exemplos, consulte o artigo Consultas relacionadas com o Kubernetes na documentação do Google Cloud Observability.
Clique em Executar consulta.
Para ver a mensagem de registo completa, incluindo o payload JSON, os metadados e a data/hora, clique na entrada de registo.
Para mais informações sobre os registos do GKE, consulte o artigo Acerca dos registos do GKE.
O que se segue?
Leia Realize uma monitorização proativa com o Cloud Monitoring (a página seguinte desta série).
Veja estes conceitos aplicados no cenário de resolução de problemas de exemplo.
Para obter aconselhamento sobre a resolução de problemas específicos, reveja os guias de resolução de problemas do GKE.
Se não conseguir encontrar uma solução para o seu problema na documentação, consulte a secção Obtenha apoio técnico para receber mais ajuda, incluindo aconselhamento sobre os seguintes tópicos:
- Abrindo um registo de apoio ao cliente através do contacto com o Cloud Customer Care.
- Receber apoio técnico da comunidade fazendo perguntas no StackOverflow e usando a etiqueta
google-kubernetes-engine
para pesquisar problemas semelhantes. Também pode juntar-se ao#kubernetes-engine
canal do Slack para receber mais apoio técnico da comunidade. - Abrir erros ou pedidos de funcionalidades através do rastreador de problemas público.