O monitoramento em nível de pod é necessário para garantir que pods individuais dentro de um cluster Kubernetes estejam funcionando corretamente. Isso envolve olhar para três tipos de métricas: métricas do Kubernetes, métricas de contêiner e métricas de aplicação.
1. Métricas do Kubernetes
Monitorar métricas do Kubernetes ajuda a garantir que todos os pods em uma implementação do Kubernetes estejam em execução e saudáveis.
Número de instâncias de pod: se o número atual de instâncias que um pod tem comparado com quantas eram esperadas é baixo, o cluster pode estar sem recursos.
Status do pod: entender se os pods estão em execução e quantos estão pendentes, falharam ou foram terminados fornece visibilidade sobre sua disponibilidade e estabilidade.
Reinicializações do pod: monitorar o número de vezes que um pod reinicia indica a estabilidade da aplicação dentro do pod. Com reinicializações frequentes, um problema subjacente como falhas ou restrições de recursos pode ser a causa.
Uso de CPU: monitorar o consumo de CPU de um pod ajuda a identificar potenciais gargalos de desempenho e garantir que os pods tenham recursos de processamento suficientes.
Uso de memória: monitorar o consumo de memória de um pod ajuda a detectar vazamentos de memória ou uso excessivo de memória que podem impactar a estabilidade da aplicação.
Uso de rede: monitorar os bytes enviados/recebidos de um pod fornece insights sobre seus padrões de comunicação e ajuda a identificar quaisquer problemas de rede.
As métricas do Kubernetes também incluem verificações de integridade, dados de rede e o andamento da implementação em curso (ou seja, número de instâncias alteradas de uma versão anterior para uma nova).
2. Métricas de contêiner
Monitorar métricas de contêiner dos pods ajuda a determinar o quão próximo você está dos limites de recursos que configurou. Essas métricas também permitem detectar pods presos em um estado de CrashLoopBackoff.
Uso de CPU/limitação: monitorar como os contêineres em execução estão consumindo CPU ajuda a identificar aqueles que são intensivos em recursos ou estão criando gargalos, o que pode impactar o desempenho geral do cluster. Acompanhar as métricas de limitação de CPU destaca se os contêineres estão sendo limitados em seu uso de CPU devido a restrições de recursos ou configurações incorretas.
Uso de memória: monitorar como os contêineres em execução estão consumindo memória chama a atenção para problemas como vazamentos de memória, uso excessivo de memória ou alocação insuficiente de memória, que podem estar afetando a estabilidade do contêiner e o desempenho geral do sistema.
Tráfego de rede/erros: monitorar o tráfego de rede dos contêineres, bem como erros como perda de pacotes ou falhas de conexão, ajuda a avaliar seus padrões de comunicação e identificar uso excessivo de rede ou picos inesperados de tráfego.
3. Métricas de aplicação
Monitorar métricas de aplicação ajuda a medir o desempenho e a disponibilidade das aplicações executando dentro dos pods Kubernetes. Essas métricas são tipicamente desenvolvidas pela própria aplicação Kubernetes e estão relacionadas às regras de negócio que ela aborda, como latência, capacidade de resposta, taxas de erro e tempos de resposta.