Classes QoS (Kubernetes)
Kubernetes classe chaque pod dans l’une de trois catégories de qualité de
service (QoS), déduites automatiquement de ses requests et limits,
jamais déclarées directement. Cette classe ne devient visible que sous
pression : c’est elle qui détermine l’ordre d’éviction quand un nœud
manque de mémoire.
Les trois classes
Guaranteed : chaque conteneur du pod fixe requests égal à limits,
pour le CPU et la mémoire. Le pod reçoit la meilleure protection, évincé
en dernier. Burstable : au moins une request ou une limit est posée,
sans atteindre les conditions de Guaranteed, la classe la plus courante
en pratique. BestEffort : aucune request ni limit définie nulle part.
Le pod est le premier candidat à l’éviction, quelle que soit son
importance réelle pour le service.
Pourquoi ça n’est pas cosmétique
Un pod BestEffort n’est pas juste « moins prioritaire » en théorie : sous pression mémoire réelle, le kubelet évince dans cet ordre précis, classe par classe. Un service critique dont personne n’a pris le temps de poser de requests se retrouve, sans le savoir, dans la catégorie évincée en premier, souvent découvert au pire moment, pendant un incident où le nœud est déjà sous tension.