Reagir a problemas depois que eles ocorrem pode causar inatividade. Para manter um sistema resiliente no Google Kubernetes Engine (GKE), é preciso 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 indicadores principais de desempenho, visualize tendências e configure alertas para detectar problemas como aumento das taxas de erros 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 as funções comuns e as tarefas de exemplo que referenciamos no conteúdo do Cloud de Confiance by S3NS , 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 a 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 saúde 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 | Importâ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 exceder 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 OOM. |
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 em apps, configurações incorretas ou esgotamento de recursos, por meio de 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 provisionadas em excesso ou insuficientemente 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 desempenho e saúde 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 a investigar se o nó está íntegro ou sob pressão ou se tem memória suficiente para programar novos pods.
| Métrica | Descrição | Importâ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 de inicialização ou remoções de pods, fornecendo avisos sobre o uso do armazenamento temporário. |
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 do sistema da infraestrutura 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 desempenho 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 o armazenamento de forma proativa para evitar falhas de gravação de volumes cheios.
| Métrica | Descrição | Importância da solução de problemas |
|---|---|---|
kubernetes.io/pod/network/received_bytes_count |
Número cumulativo 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 do volume, avisando quando uma alta utilização (próxima de 1) pode levar a 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 ambiente do GKE, crie gráficos com base em métricas com o Metrics Explorer.
Para usar o Metrics Explorer, siga estas etapas:
No console do Cloud de Confiance , acesse a página do 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 de 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_bytese 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 uso da memória muito alto ou crescente.
O Metrics Explorer tem muita flexibilidade na forma de criar 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 você quando o limite de CPU do contêiner estiver acima de 80% por cinco minutos, faça o seguinte:
No console Cloud de Confiance , acesse a página Alertas.
Clique em Criar política.
Na caixa Selecionar uma métrica, filtre por
CPU limit utilizatione 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 Cloud de Confiance calcula um valor médio a cada minuto.
Na lista Função de janela contínua, selecione média.
As duas 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 violação de série temporal.
- 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 reteste, selecione 5 min. Essa configuração significa que o alerta será acionado somente 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 à 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 Nomear a política de alertas, dê um nome claro e descritivo à política.
- 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 de alertas na documentação do Cloud Monitoring.
A seguir
Leia Acelerar o diagnóstico com o Gemini Cloud Assist (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-enginepara pesquisar problemas semelhantes. Você também pode participar do canal do Slack#kubernetes-enginepara receber mais suporte da comunidade. - Abrir problemas ou solicitações de recursos usando o Issue Tracker público.