Dans les scénarios de surengagement dynamique des ressources, le CPU inutilisé par les pods haute priorité (Guaranteed et Burstable) peut être alloué aux charges de travail BestEffort (BE). CPU Suppress limite dynamiquement l'utilisation du CPU des pods BE en fonction de l'utilisation du nœud afin de protéger les pods sensibles à la latence (LS) et de maintenir l'utilisation des ressources du cluster dans un seuil de sécurité.
CPU Suppress nécessite le surengagement dynamique des ressources .
Fonctionnement
CPU Suppress surveille l'utilisation du CPU du nœud par rapport à un seuil configurable (cpuSuppressThresholdPercent, valeur par défaut : 65 %). Le cpuset des pods BE s'étend ou se réduit en fonction de la marge disponible pour les pods LS :
La charge LS augmente — CPU Suppress réduit le cpuset des pods BE, protégeant ainsi les temps de réponse des pods LS
La charge LS diminue — CPU Suppress étend le cpuset des pods BE, récupérant la capacité inactive
La figure suivante illustre la relation entre le seuil CPU, l'utilisation des pods LS et la restriction CPU des pods BE.
La figure utilise les termes suivants :
CPU Threshold : seuil d'utilisation du CPU du nœud
Pod (LS).Usage : utilisation du CPU par les pods LS
CPU Restriction for BE : ressources CPU disponibles pour les pods BE
Alignez cpuSuppressThresholdPercent avec le filigrane CPU réservé dans votre configuration de surengagement dynamique des ressources.
Prérequis
Assurez-vous de disposer des éléments suivants :
ack-koordinator (ack-slo-manager) version 0.4.0 ou ultérieure installée
Consultez les classes QoS des pods et l'attribution de ressources mémoire aux conteneurs et aux pods dans la documentation Kubernetes.
Facturation
L'installation et l'utilisation d'ack-koordinator sont gratuites. Des frais peuvent s'appliquer dans les cas suivants :
Ressources des nœuds de travail : ack-koordinator est un composant non géré. Il consomme des ressources des nœuds de travail après l'installation. Vous pouvez contrôler les demandes de ressources pour chaque module lors de l'installation.
Métriques Prometheus : Si vous activez les métriques Prometheus pour ack-koordinator et utilisez Managed Service for Prometheus, les métriques sont comptabilisées comme des métriques personnalisées et entraînent des frais. Les coûts dépendent de la taille du cluster et du nombre d'applications. Avant l'activation, consultez la page Facturation de Managed Service for Prometheus pour comprendre le quota gratuit et les règles de facturation. Pour le suivi de l'utilisation, consultez la rubrique Interroger le volume de données observables et les factures.
Procédure
CPU Suppress se configure au niveau du cluster via le ConfigMap ack-slo-config dans le namespace kube-system.
-
Créez un fichier nommé
configmap.yamlavec le contenu suivant :apiVersion: v1 kind: ConfigMap metadata: name: ack-slo-config namespace: kube-system data: resource-threshold-config: | { "clusterStrategy": { "enable": true } } -
Appliquez le ConfigMap. La méthode dépend de l'existence de
ack-slo-configdans votre cluster :-
Si le ConfigMap existe, appliquez un patch pour mettre à jour uniquement le champ pertinent :
kubectl patch cm -n kube-system ack-slo-config --patch "$(cat configmap.yaml)" -
Si le ConfigMap n'existe pas, créez-le :
kubectl apply -f configmap.yaml
-
-
Vérifiez que CPU Suppress est actif en contrôlant l'allocation CPU des pods BE :
cat /sys/fs/cgroup/cpuset/kubepods.slice/kubepods-besteffort.slice/cpuset.cpusSortie attendue :
10-25,35-51,62-77,87-103Cela confirme que les pods BE sont limités à un sous-ensemble de CPU et que CPU Suppress est actif.
-
Facultatif : Définissez le seuil d'utilisation du CPU. Mettez à jour
configmap.yamlavec le contenu suivant et réappliquez la configuration :apiVersion: v1 kind: ConfigMap metadata: name: ack-slo-config namespace: kube-system data: resource-threshold-config: | { "clusterStrategy": { "enable": true, "cpuSuppressThresholdPercent": 65 } }Valeur par défaut : 65 %. Alignez
cpuSuppressThresholdPercentavec le profil de vos charges de travail ou avec le filigrane CPU du surengagement dynamique des ressources.
Paramètres
| Paramètre | Type | Plage de valeurs | Par défaut | Description |
|---|---|---|---|---|
enable |
Booléen | true / false |
— | Active (true) ou désactive (false) CPU Suppress |
cpuSuppressThresholdPercent |
Entier | [0, 100] | 65 |
Seuil d'utilisation du CPU du nœud (%). Les ressources CPU des pods BE diminuent lorsque l'utilisation dépasse cette valeur et augmentent lorsqu'elle tombe en dessous. |
Étapes suivantes
ack-koordinator propose des limites de ressources supplémentaires pour les charges de travail surengagées :