PerfectScalePerfectScale

PerfectScale

Alerting Kubernetes : gardez le contrôle sur la santé et les performances de vos clusters K8s

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

By Brendan CooperJun 19, 20244 min read

La mise en place d'un alerting Kubernetes vous permet d'identifier rapidement les variations des indicateurs de résilience pertinents, afin d'éliminer les problèmes avant qu'ils n'impactent votre système.

Voici les 10 alertes essentielles à configurer pour votre cluster Kubernetes, toutes incluses dans la plateforme de monitoring Kubernetes de PerfectScale. Avec PerfectScale, vous êtes informé en temps réel des risques identifiés.

PerfectScale fournit des alertes fiables et réactives pour vous signaler toute activité inhabituelle du système.

Indicateurs de résilience

OOM

Les événements Out-of-Memory surviennent généralement dans les situations suivantes :

  • La limite mémoire d'un pod est définie à un niveau trop bas. Un événement est déclenché lorsque l'utilisation mémoire du pod atteint la limite définie.
  • Le nœud subit une pression mémoire et tente d'évincer certains pods. Documentation officielle

CPU Throttling

Le CPU Throttling se produit lorsqu'un pod atteint sa limite CPU définie, ce qui peut entraîner de la latence dans les temps de réponse de l'application.

Kubernetes s'appuie sur le mécanisme de quota de CFS pour appliquer la limite. Le quota repose sur une période de temps, et non sur la puissance CPU disponible. cfs_period_us définit cette période, toujours fixée à 100000us (100ms). Par exemple, un conteneur avec une limite d'1 cœur sera throttlé après 50ms sur un nœud à 2 cœurs, et après 25ms sur un nœud à 4 cœurs, quel que soit le nombre de cœurs CPU consommés.

RestartsObserved

Des redémarrages fréquents révèlent un problème susceptible de compromettre sérieusement le SLA visé.

Éviction

Une éviction correspond à l'arrêt forcé et au retrait d'un pod en cours d'exécution sur un nœud. Les événements d'éviction sont généralement dus à une pression mémoire ou CPU sur un nœud.

Documentation officielle

Lorsqu'une éviction est détectée, une alerte est déclenchée immédiatement pour en informer les utilisateurs. Assurez-vous d'avoir configuré et assigné le profil d'intégration au cluster afin de recevoir sans délai les notifications sur un canal Slack ou MS Teams.

HPAAtMaxReplicasObserved

À mesure que la demande sur un service ou une application augmente, le HPA fait monter le système en charge en ajoutant dynamiquement des réplicas. Une fois la limite maximale de réplicas configurée atteinte, PerfectScale déclenche l'indicateur HPAAtMaxReplicasObserved, ce qui signifie que le système ne peut plus monter en charge avec les paramètres actuels.

La sévérité de l'indicateur varie selon la durée pendant laquelle un workload tourne au nombre maximal de réplicas. Par exemple, plus un workload reste longtemps au maximum de réplicas, plus la sévérité de l'indicateur est élevée.

Indicateurs de Limit/Request non définies

CpuRequestNotSet

Définir des CPU requests appropriées aide le scheduler Kubernetes à allouer la juste quantité de CPU à chaque conteneur, en garantissant que la capacité des nœuds du cluster répond à la demande.

MemRequestNotSet

Définir des MEMORY requests appropriées aide le scheduler Kubernetes à allouer la juste quantité de mémoire à chaque conteneur, en garantissant que la capacité des nœuds du cluster répond à la demande.

MemLimitNotSet

Définir une MEMORY limit appropriée protège votre worker node des OOM et prévient le risque de surallocation de mémoire.

Contrairement au CPU, qui est compressible (nouveau cycle toutes les 100ms), la mémoire est incompressible et ne peut pas être surallouée.

Indicateurs de sous-provisionnement

UnderProvisionedCpuRequest

Définir des CPU requests appropriées aide le scheduler Kubernetes à allouer la juste quantité de CPU à chaque conteneur, en garantissant que la capacité des nœuds du cluster répond à la demande.

UnderProvisionedMemRequest

Définir des MEMORY requests appropriées aide le scheduler Kubernetes à allouer la juste quantité de mémoire à chaque conteneur, en garantissant que la capacité des nœuds du cluster répond à la demande.

UnderProvisionedMemLimit

Définir une MEMORY limit appropriée protège votre worker node des OOM et prévient le risque de surallocation de mémoire. En revanche, une MEMORY limit sous-provisionnée peut provoquer des événements OOM indésirables au niveau du pod, au détriment du SLA visé.

Indicateurs de gaspillage

OverProvisionedCpuRequest

Définir des CPU requests appropriées aide le scheduler Kubernetes à allouer la juste quantité de CPU à chaque conteneur, en garantissant que la capacité des nœuds du cluster répond à la demande. En cas de CPU requests surprovisionnées, des ressources cloud sont gaspillées inutilement : elles sont allouées sans être utilisées.

OverProvisionedMemoryRequest

Définir des MEMORY requests appropriées aide le scheduler Kubernetes à allouer la juste quantité de mémoire à chaque conteneur, en garantissant que la capacité des nœuds du cluster répond à la demande. En revanche, une memory request surprovisionnée gaspille des ressources cloud, allouées mais jamais utilisées.

FAQ

1. Qu'est-ce que l'alerting Kubernetes ?

L'alerting Kubernetes notifie les utilisateurs des problèmes potentiels au sein du cluster.

2. Comment mettre en place l'alerting dans Kubernetes ?

L'alerting peut être mis en place à l'aide d'outils de monitoring comme PerfectScale.

3. Quels sont les avantages de l'alerting Kubernetes ?

L'alerting contribue à un fonctionnement fluide et à une résolution plus rapide des incidents.

4. Comment personnaliser les règles d'alerting dans Kubernetes ?

Les utilisateurs peuvent définir et configurer des règles basées sur des métriques spécifiques.

5. Quelles sont les bonnes pratiques en matière d'alerting Kubernetes ?

Parmi les bonnes pratiques figure la configuration d'alertes sur les indicateurs clés de performance.