PerfectScalePerfectScale

PerfectScale

Alertas de Kubernetes para a saúde e a performance do seu cluster K8s

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

By Brendan CooperJun 19, 20244 min read

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.

Documentação oficial

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.