Configurar alertas no Kubernetes ajuda você a identificar rapidamente mudanças relevantes nos indicadores de resiliência, garantindo que elas possam ser eliminadas antes de impactar o sistema.
Confira os 10 alertas mais importantes para configurar no seu cluster Kubernetes — todos incluídos na plataforma de monitoramento de Kubernetes da PerfectScale. Com a PerfectScale, você é notificado sobre riscos identificados em tempo real.
A PerfectScale fornece alertas confiáveis e oportunos para informar sobre qualquer atividade incomum do sistema.
Indicadores de resiliência
OOM
Eventos de Out-of-Memory geralmente ocorrem nas seguintes situações:
- O limite de memória de um pod está definido com um valor baixo demais. Um evento será disparado quando o uso de memória do pod atingir o limite definido.
- O node está sob pressão de memória e tenta remover alguns pods. Documentação oficial
CPU Throttling
O CPU Throttling ocorre quando o pod atinge o limite de CPU definido, podendo gerar latência na resposta da aplicação.
O Kubernetes usa o mecanismo de quota do CFS para implementar o limite. A quota é baseada no período de tempo, e não na capacidade de CPU disponível.
cfs_period_usé usado para definir o período de tempo e é sempre 100000us (100ms). Por exemplo, um contêiner com limite de 1 core sofrerá throttling após 50ms quando executado em um node de 2 cores e após 25ms quando executado em um node de 4 cores, independentemente do número de cores de CPU consumidos.
RestartsObserved
Restarts frequentes indicam a presença de um problema com alto potencial de comprometer o SLA desejado.
Eviction
Eviction indica o encerramento forçado e a remoção de um pod em execução de um node. Eventos de eviction geralmente ocorrem devido à pressão de memória ou CPU em um node.
Quando uma eviction é detectada, um alerta é disparado imediatamente para informar os usuários. Certifique-se de ter configurado e atribuído o perfil de integração ao cluster para receber notificações em tempo hábil em um canal do Slack ou do MS Teams.
HPAAtMaxReplicasObserved
À medida que a demanda por um serviço ou aplicação aumenta, o HPA escala o sistema para lidar com a carga adicional, adicionando mais réplicas dinamicamente. Quando o limite máximo configurado de réplicas é atingido, a PerfectScale aciona o indicador HPAAtMaxReplicasObserved, o que significa que o sistema não consegue escalar mais com as configurações atuais.
Dependendo do tempo em que um workload permanece em execução no número máximo de réplicas, a severidade do indicador varia. Por exemplo, quanto mais tempo um workload roda no máximo de réplicas, maior a severidade do indicador.
Indicadores de Limit/Request não definidos
CpuRequestNotSet
Definir CPU requests adequados ajuda o scheduler do Kubernetes a alocar a quantidade certa de CPU para cada contêiner, garantindo que a capacidade dos nodes do cluster atenda à demanda.
MemRequestNotSet
Definir MEMORY requests adequados ajuda o scheduler do Kubernetes a alocar a quantidade certa de memória para cada contêiner, garantindo que a capacidade dos nodes do cluster atenda à demanda.
MemLimitNotSet
Definir um MEMORY limit adequado ajuda a proteger seu worker node contra OOM, evitando o risco de superalocação de memória.
Diferente da CPU, que é compressível (novo ciclo a cada 100ms), a MEMÓRIA é incompressível e não pode ser superalocada.
Indicadores de UnderProvisioning
UnderProvisionedCpuRequest
Definir CPU requests adequados ajuda o scheduler do Kubernetes a alocar a quantidade certa de CPU para cada contêiner, garantindo que a capacidade dos nodes do cluster atenda à demanda.
UnderProvisionedMemRequest
Definir MEMORY requests adequados ajuda o scheduler do Kubernetes a alocar a quantidade certa de memória para cada contêiner, garantindo que a capacidade dos nodes do cluster atenda à demanda.
UnderProvisionedMemLimit
Definir um MEMORY limit adequado ajuda a proteger seu worker node contra OOM, evitando o risco de superalocação de memória. No entanto, um MEMORY limit subprovisionado pode causar eventos indesejados de OOM no nível do pod, podendo comprometer o SLA desejado.
Indicadores de desperdício
OverProvisionedCpuRequest
Definir CPU requests adequados ajuda o scheduler do Kubernetes a alocar a quantidade certa de CPU para cada contêiner, garantindo que a capacidade dos nodes do cluster atenda à demanda. Em casos de CPU requests superprovisionados, recursos de nuvem são desperdiçados desnecessariamente, pois ficam alocados sem serem utilizados.
OverProvisionedMemoryRequest
Definir MEMORY requests adequados ajuda o scheduler do Kubernetes a alocar a quantidade certa de memória para cada contêiner, garantindo que a capacidade dos nodes do cluster atenda à demanda. No entanto, quando um memory request é superprovisionado, ele desperdiça recursos de nuvem, que ficam alocados mas nunca são usados.
FAQ
1. O que são alertas de Kubernetes?
Os alertas de Kubernetes notificam os usuários sobre possíveis problemas no cluster.
2. Como posso configurar alertas no Kubernetes?
Os alertas podem ser configurados usando ferramentas de monitoramento como a PerfectScale.
3. Quais são os benefícios dos alertas de Kubernetes?
Os alertas ajudam a garantir operações estáveis e uma resolução mais rápida de problemas.
4. Como posso personalizar as regras de alerta no Kubernetes?
Os usuários podem definir e configurar regras com base em métricas específicas.
5. Quais são as boas práticas para alertas de Kubernetes?
As boas práticas incluem configurar alertas para os principais indicadores de performance.