PerfectScalePerfectScale

PerfectScale

Alertas de Kubernetes para cuidar la salud y el rendimiento de tu clúster

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

By Brendan CooperJun 19, 20244 min read

Configurar alertas en Kubernetes te ayuda a detectar rápidamente cambios relevantes en los indicadores de resiliencia, de modo que se puedan resolver antes de que afecten al sistema.

Estas son las 10 alertas más importantes que deberías configurar en tu clúster de Kubernetes, todas incluidas en la plataforma de monitoreo de Kubernetes de PerfectScale. Con PerfectScale, recibes notificaciones en tiempo real sobre los riesgos detectados.

PerfectScale ofrece alertas oportunas y confiables que te avisan de cualquier actividad inusual en el sistema.

Indicadores de resiliencia

OOM

Los eventos Out-of-Memory suelen ocurrir en las siguientes situaciones:

  • El límite de memoria de un pod está configurado demasiado bajo. Se dispara un evento cuando el uso de memoria del pod alcanza el límite definido.
  • El nodo está bajo presión de memoria e intenta desalojar algunos pods. Documentación oficial

CPU Throttling

El CPU Throttling ocurre cuando el pod alcanza su límite de CPU definido y puede generar latencia en la respuesta de la aplicación.

Kubernetes utiliza el mecanismo de cuotas de CFS para implementar el límite. La cuota se basa en el período de tiempo y no en la potencia de CPU disponible. cfs_period_us se usa para definir el período de tiempo, y siempre es 100000us (100ms). Por ejemplo, un contenedor con un límite de 1 core será limitado (throttled) después de 50ms cuando se ejecute en un nodo de 2 cores y después de 25ms en un nodo de 4 cores, independientemente del número de cores de CPU consumidos.

RestartsObserved

Los reinicios frecuentes indican la presencia de un problema con un alto potencial de afectar el SLA deseado.

Eviction

Una eviction implica la terminación forzosa y la eliminación de un pod en ejecución de un nodo. Los eventos de eviction suelen deberse a presión de memoria o de CPU en un nodo.

Documentación oficial

Cuando se detecta una eviction, se dispara una alerta de inmediato para informar a los usuarios. Asegúrate de haber configurado y asignado el perfil de integración al clúster para recibir notificaciones oportunas en un canal de Slack o MS Teams.

HPAAtMaxReplicasObserved

A medida que aumenta la demanda de un servicio o aplicación, el HPA escala el sistema para manejar la carga adicional agregando dinámicamente más réplicas. Una vez que se alcanza el límite máximo de réplicas configurado, PerfectScale activa el indicador HPAAtMaxReplicasObserved, lo que significa que el sistema ya no puede escalar más con la configuración actual.

La severidad del indicador varía según el tiempo que un workload permanezca en el máximo de réplicas. Por ejemplo, cuanto más tiempo se ejecute un workload al máximo de réplicas, mayor será la severidad del indicador.

Indicadores de Limit/Request sin configurar

CpuRequestNotSet

Configurar correctamente los CPU requests ayuda al scheduler de Kubernetes a asignar la cantidad adecuada de CPU a cada contenedor, garantizando que la capacidad de los nodos del clúster cubra la demanda.

MemRequestNotSet

Configurar correctamente los MEMORY requests ayuda al scheduler de Kubernetes a asignar la cantidad adecuada de memoria a cada contenedor, garantizando que la capacidad de los nodos del clúster cubra la demanda.

MemLimitNotSet

Configurar correctamente el MEMORY limit ayuda a proteger tu nodo worker de eventos OOM, evitando el riesgo de sobreasignación de memoria.

A diferencia de la CPU, que es comprimible (un nuevo ciclo cada 100ms), la memoria es incompresible y no puede sobreasignarse.

Indicadores de UnderProvisioning

UnderProvisionedCpuRequest

Configurar correctamente los CPU requests ayuda al scheduler de Kubernetes a asignar la cantidad adecuada de CPU a cada contenedor, garantizando que la capacidad de los nodos del clúster cubra la demanda.

UnderProvisionedMemRequest

Configurar correctamente los MEMORY requests ayuda al scheduler de Kubernetes a asignar la cantidad adecuada de memoria a cada contenedor, garantizando que la capacidad de los nodos del clúster cubra la demanda.

UnderProvisionedMemLimit

Configurar correctamente el MEMORY limit ayuda a proteger tu nodo worker de eventos OOM, evitando el riesgo de sobreasignación de memoria. Sin embargo, un MEMORY limit insuficiente puede provocar eventos OOM no deseados a nivel de pod, con el riesgo de afectar el SLA deseado.

Indicadores de pérdida

OverProvisionedCpuRequest

Configurar correctamente los CPU requests ayuda al scheduler de Kubernetes a asignar la cantidad adecuada de CPU a cada contenedor, garantizando que la capacidad de los nodos del clúster cubra la demanda. Cuando los CPU requests están sobredimensionados, se pierden recursos en la nube innecesariamente, ya que se asignan sin llegar a utilizarse.

OverProvisionedMemoryRequest

Configurar correctamente los MEMORY requests ayuda al scheduler de Kubernetes a asignar la cantidad adecuada de memoria a cada contenedor, garantizando que la capacidad de los nodos del clúster cubra la demanda. Sin embargo, cuando un memory request está sobredimensionado, se pierden recursos en la nube que quedan asignados pero nunca se usan.

Preguntas frecuentes

1. ¿Qué son las alertas de Kubernetes?

Las alertas de Kubernetes notifican a los usuarios sobre posibles problemas dentro del clúster.

2. ¿Cómo puedo configurar alertas en Kubernetes?

Las alertas se pueden configurar con herramientas de monitoreo como PerfectScale.

3. ¿Cuáles son los beneficios de las alertas de Kubernetes?

Las alertas ayudan a garantizar una operación fluida y una resolución más rápida de los problemas.

4. ¿Cómo puedo personalizar las reglas de alertas en Kubernetes?

Los usuarios pueden definir y configurar reglas basadas en métricas específicas.

5. ¿Cuáles son algunas buenas prácticas para las alertas de Kubernetes?

Entre las buenas prácticas se incluye configurar alertas para los indicadores clave de rendimiento.