Reagir a problemas depois que eles ocorrem pode causar inatividade. Para manter um sistema resiliente no Google Kubernetes Engine (GKE), é necessário identificar possíveis problemas antes que eles afetem os usuários.
Use esta página para monitorar proativamente seu ambiente do GKE com o Cloud Monitoring. Para isso, acompanhe os principais indicadores de performance, visualize tendências e configure alertas para detectar problemas como aumento das taxas de erro ou restrições de recursos.
Essas informações são importantes para administradores e operadores da plataforma responsáveis por garantir a integridade, a confiabilidade e a eficiência do ambiente do GKE. Ele também ajuda os desenvolvedores de aplicativos a entender o desempenho do app em condições reais, detectar regressões em implantações e receber insights para otimização. 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.
Analisar métricas úteis
O GKE envia automaticamente um conjunto de métricas para o Cloud Monitoring. As seções a seguir listam algumas das métricas mais importantes para solução de problemas:
- Métricas de desempenho e integridade do contêiner
- Métricas de desempenho e integridade do nó
- Métricas de desempenho e integridade do pod
Para uma lista completa de métricas do GKE, consulte Métricas do sistema do GKE.
Métricas de desempenho e integridade do contêiner
Comece com essas métricas quando suspeitar de um problema com um app específico. Elas ajudam a monitorar a integridade do app, incluindo a descoberta de se um contêiner está reiniciando com frequência, ficando sem memória ou sendo limitado por limites de CPU.
Métrica | Descrição | Significância da solução de problemas |
---|---|---|
kubernetes.io/container/cpu/limit_utilization |
A fração do limite de CPU em uso na instância atualmente. Esse valor pode ser maior que 1, já que um contêiner pode exceder o limite de CPU. | Identifica a limitação de CPU. Valores altos podem prejudicar o desempenho. |
kubernetes.io/container/memory/limit_utilization |
A fração do limite de memória em uso na instância atualmente. Esse valor não pode ser maior que 1. | Monitora o risco de erros de memória insuficiente (OOM). |
kubernetes.io/container/memory/used_bytes |
Memória real consumida pelo contêiner em bytes. | Rastreia o consumo de memória para identificar possíveis vazamentos de memória ou risco de erros de falta de memória. |
kubernetes.io/container/memory/page_fault_count |
Número de falhas da página, separadas por tipo: principais e secundárias. | Indica pressão significativa na memória. Falhas de página graves significam que a memória está sendo lida do disco (troca), mesmo que os limites de memória não sejam atingidos. |
kubernetes.io/container/restart_count |
Número de vezes que o contêiner foi reiniciado. | Destaca possíveis problemas, como falhas de apps, configurações incorretas ou esgotamento de recursos, devido a um número alto ou crescente de reinicializações. |
kubernetes.io/container/ephemeral_storage/used_bytes |
Uso do armazenamento temporário local em bytes. | Monitora o uso do disco temporário para evitar remoções de pods devido ao armazenamento temporário cheio. |
kubernetes.io/container/cpu/request_utilization |
A fração da CPU solicitada que está em uso na instância atualmente. Esse valor pode ser maior que 1 porque o uso pode exceder a solicitação. | Identifica solicitações de CPU com provisionamento em excesso ou em falta para ajudar você a otimizar a alocação de recursos. |
kubernetes.io/container/memory/request_utilization |
A fração da memória solicitada que está em uso na instância atualmente. Esse valor pode ser maior que 1 porque o uso pode exceder a solicitação. | Identifica solicitações de memória provisionadas em excesso ou insuficientes para melhorar o agendamento e evitar erros de falta de memória. |
Métricas de performance e integridade do nó
Analise essas métricas quando precisar diagnosticar problemas com a infraestrutura do GKE. Essas métricas são cruciais para entender a integridade e a capacidade geral dos nós, ajudando você a investigar se o nó está em risco ou sob pressão ou se ele tem memória suficiente para programar novos pods.
Métrica | Descrição | Significância da solução de problemas |
---|---|---|
kubernetes.io/node/cpu/allocatable_utilization |
A fração da CPU alocável que está em uso na instância atualmente. | Indica se a soma do uso do pod está sobrecarregando os recursos de CPU disponíveis do nó. |
kubernetes.io/node/memory/allocatable_utilization |
A fração da memória alocável que está em uso na instância atualmente. Esse valor não pode ser maior que 1, já que o uso não pode ultrapassar os bytes de memória alocáveis. | Sugere que o nó não tem memória para programar novos pods ou para que os pods atuais funcionem, especialmente quando os valores são altos. |
kubernetes.io/node/status_condition (BETA) |
Condição de um nó do campo de condição de status do nó. | Informa condições de integridade do nó, como Ready , MemoryPressure ou DiskPressure . |
kubernetes.io/node/ephemeral_storage/used_bytes |
Bytes de armazenamento temporário local usados pelo nó. | Ajuda a evitar falhas ou remoções de inicialização de pods ao fornecer avisos sobre o uso alto do armazenamento efêmero. |
kubernetes.io/node/ephemeral_storage/inodes_free |
Número livre de nós de índice (inodes) no armazenamento temporário local. | Monitora o número de inodes livres. Ficar sem inodes pode interromper as operações, mesmo que haja espaço em disco disponível. |
kubernetes.io/node/interruption_count (BETA) |
As interrupções são remoções de infraestrutura pelo sistema enquanto o cliente está no controle dela. Essa métrica é a contagem atual de interrupções por tipo e motivo. | Explica por que um nó pode desaparecer inesperadamente devido a remoções do sistema. |
Métricas de performance e integridade do pod
Essas métricas ajudam a resolver problemas relacionados à interação de um pod com o ambiente dele, como rede e armazenamento. Use essas métricas quando precisar diagnosticar pods de inicialização lenta, investigar possíveis problemas de conectividade de rede ou gerenciar proativamente o armazenamento para evitar falhas de gravação de volumes completos.
Métrica | Descrição | Significância da solução de problemas |
---|---|---|
kubernetes.io/pod/network/received_bytes_count |
Número acumulado de bytes recebidos pelo pod na rede. | Identifica atividades de rede incomuns (altas ou baixas) que podem indicar problemas no app ou na rede. |
kubernetes.io/pod/network/policy_event_count (BETA) |
Mudança no número de eventos de política de rede vistos no plano de dados. | Identifica problemas de conectividade causados por políticas de rede. |
kubernetes.io/pod/volume/utilization |
A fração do volume que está sendo usada atualmente pela instância. Este valor não pode ser maior que 1, já que o uso não pode ultrapassar o espaço de volume total disponível. | Permite o gerenciamento proativo do espaço de volume, avisando quando o uso alto (próximo de 1) pode causar falhas de gravação. |
kubernetes.io/pod/latencies/pod_first_ready (BETA) |
A latência de inicialização de ponta a ponta do pod (de "Criado" a "Pronto"), incluindo extrações de imagens. | Diagnostica pods de inicialização lenta. |
Visualizar métricas com o Metrics Explorer
Para visualizar o estado do seu ambiente do GKE, crie gráficos com base em métricas usando o Metrics Explorer.
Para usar o Metrics Explorer, siga estas etapas:
No console Google Cloud , acesse a página Metrics Explorer.
No campo Métricas, selecione ou insira a métrica que você quer inspecionar.
Confira os resultados e observe as tendências ao longo do tempo.
Por exemplo, para investigar o consumo de memória dos pods em um namespace específico, faça o seguinte:
- Na lista Selecionar uma métrica, escolha a métrica
kubernetes.io/container/memory/used_bytes
e clique em Aplicar. - Clique em Adicionar filtro e selecione namespace_name.
- Na lista Valor, selecione o namespace que você quer investigar.
- No campo Agregação, selecione Soma > pod_name e clique em OK. Essa configuração mostra uma linha de série temporal separada para cada pod.
- Clique em Salvar gráfico.
O gráfico resultante mostra o uso da memória de cada pod ao longo do tempo, o que pode ajudar você a identificar visualmente pods com consumo de memória muito alto ou crescente.
O Metrics Explorer oferece muita flexibilidade na forma de construir as métricas que você quer visualizar. Para mais informações sobre as opções avançadas do Metrics Explorer, consulte Criar gráficos com o Metrics Explorer na documentação do Cloud Monitoring.
Criar alertas para detecção proativa de problemas
Para receber notificações quando algo der errado ou quando as métricas violarem determinados limites, configure políticas de alertas no Cloud Monitoring.
Por exemplo, para configurar uma política de alertas que notifica quando o limite de CPU do contêiner fica acima de 80% por cinco minutos, faça o seguinte:
No console Google Cloud , acesse a página Alertas.
Clique em Criar política.
Na caixa Selecionar uma métrica, filtre por
CPU limit utilization
e selecione a seguinte métrica: kubernetes.io/container/cpu/limit_utilization.Clique em Aplicar.
Deixe o campo Adicionar um filtro em branco. Essa configuração aciona um alerta quando um cluster viola o limite.
Na seção Transformar dados, faça o seguinte:
- Na lista Janela contínua, selecione 1 minuto. Essa configuração significa que o Google Cloud calcula um valor médio a cada minuto.
Na lista Função de janela contínua, selecione média.
Ambas as configurações calculam a média de uso do limite de CPU para cada contêiner a cada minuto.
Clique em Próxima.
Na seção Configurar alerta, faça o seguinte:
- Em Tipo de condição, selecione Limite.
- Em Gatilho de alerta, selecione Qualquer série temporal viola.
- Em Posição do limite, selecione Acima do limite.
- Em Valor do limite, insira
0.8
. Esse valor representa o limite de 80% que você quer monitorar. - Clique em Opções avançadas.
- Na lista Janela de novo teste, selecione 5 min. Essa configuração significa que o alerta é acionado apenas se a utilização da CPU permanecer acima de 80% por um período contínuo de cinco minutos, o que reduz alarmes falsos de picos breves.
- No campo Nome da condição, dê um nome descritivo para a condição.
- Clique em Próxima.
Na seção Configurar as notificações e finalizar o alerta, faça o seguinte:
- Na lista Canais de notificação, selecione o canal em que você quer receber o alerta. Se você não tiver um canal, clique em Gerenciar canais de notificação para criar um.
- No campo Nomeie a política de alertas, dê a ela um nome claro e descritivo.
- Não mude os valores padrão dos outros campos.
- Clique em Próxima.
Revise a política e, se estiver tudo certo, clique em Criar política.
Para saber mais sobre outras maneiras de criar alertas, consulte a Visão geral dos alertas na documentação do Cloud Monitoring.
A seguir
Leia Acelerar o diagnóstico com o Gemini Cloud Assist (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.