Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Use hotspot-aware descheduling to balance node loads

Dernière mise à jour :Aug 11, 2026

Le désordonnanceur ack-koordinator détecte les nœuds surchargés en fonction de l'utilisation réelle des ressources et expulse les Pods afin de rééquilibrer le cluster.

Cette rubrique explique comment installer le désordonnanceur, activer le désordonnancement sensible aux points chauds et configurer ses paramètres avancés.

Limitations

  • Seuls les clusters managés ACK Pro sont pris en charge.

  • Versions des composants requises :

    Composant Version
    Planificateur ACK v1.22.15-ack-4.0 ou ultérieure, v1.24.6-ack-4.0 ou ultérieure
    ack-koordinator v1.1.1-ack.1 ou ultérieure
    Helm v3.0 ou ultérieure
Important

Le désordonnanceur Koordinator se contente d'expulser les Pods ; c'est le planificateur ACK qui gère leur replanification. Utilisez le désordonnancement conjointement avec la planification consciente de la charge pour éviter que les Pods expulsés ne soient redistribués sur les mêmes nœuds surchargés.

Important

Lors du désordonnancement, les anciens Pods sont expulsés avant la création des nouveaux. Assurez-vous que votre application dispose d'un nombre suffisant de réplicas redondants pour maintenir sa disponibilité.

Important

Le désordonnancement utilise l'API standard Kubernetes eviction API. Vérifiez que vos Pods sont réentrants afin que leurs redémarrages après expulsion n'interrompent pas votre service.

Facturation

L'installation et l'utilisation d'ack-koordinator sont gratuites. Des frais supplémentaires peuvent s'appliquer dans les scénarios suivants :

  • Ressources des nœuds de calcul : ack-koordinator est un composant autogéré qui consomme des ressources sur les nœuds de calcul. Configurez les demandes de ressources pour chaque module lors de l'installation.

  • Métriques personnalisées Prometheus : Si vous activez l'option Enable Prometheus Monitoring for ACK-Koordinator et utilisez Managed Service for Prometheus, les métriques exposées sont comptabilisées comme des métriques personnalisées et entraînent des frais. Le montant dépend de la taille du cluster et du nombre d'applications. Consultez la section relative à la facturation des instances Prometheus avant d'activer cette fonctionnalité. Interrogez les données d'utilisation pour surveiller votre consommation de ressources.

Fonctionnement

Cycle d'exécution

Le désordonnanceur Koordinator s'exécute périodiquement. Chaque cycle d'exécution comprend trois étapes :

Koordinator Descheduler execution procedure
  1. Collecte des données : Récupération des informations relatives aux nœuds et aux charges de travail, ainsi que des données d'utilisation des ressources.

  2. Exécution des plug-ins (exemple avec LowNodeLoad) :

    1. Identification des nœuds constituant des points chauds en fonction des seuils highThresholds et lowThresholds.

    2. Parcours de tous les nœuds identifiés comme points chauds, notation des Pods éligibles et tri en vue de leur expulsion. Voir la section Politique de notation des Pods.

    3. Vérification de chaque Pod candidat par rapport aux contraintes de migration : capacité du cluster, utilisation des ressources et limites du ratio de réplicas. Consultez la section Politiques de désordonnancement des points chauds conscientes de la charge.

    4. Marquage des Pods validés comme candidats à la migration et exclusion des autres.

  3. Expulsion et migration des Pods : Expulsion des candidats à la migration via l'API d'expulsion.

Classification des nœuds

Le plug-in LowNodeLoad classe les nœuds en trois catégories selon deux seuils : lowThresholds (seuil d'inactivité) et highThresholds (seuil de point chaud).

Exemple avec lowThresholds = 45 % et highThresholds = 70 % :

Node classification diagram
  1. Nœud inactif : L'utilisation des ressources est inférieure à lowThresholds (< 45 %).

  2. Nœud normal : L'utilisation des ressources se situe entre lowThresholds et highThresholds (45–70 %). Il s'agit de la plage cible.

  3. Nœud constituant un point chaud : L'utilisation des ressources dépasse highThresholds (> 70 %). Les Pods sont expulsés jusqu'à ce que la charge du nœud descende à 70 % ou moins.

Les données d'utilisation des ressources sont mises à jour toutes les minutes et reflètent la moyenne sur 5 minutes.

Si tous les nœuds dépassent lowThresholds , la charge du cluster est considérée comme élevée et le désordonnancement est suspendu, même si certains nœuds dépassent highThresholds .

Politiques de désordonnancement des points chauds conscientes de la charge

Politique Description
Nouvelle tentative de vérification des points chauds Un nœud n'est classé comme point chaud qu'après avoir dépassé highThresholds pendant plusieurs cycles consécutifs (par défaut : 5), ce qui permet d'éviter les faux positifs dus à des pics momentanés.
Tri des nœuds Le désordonnancement commence par le nœud constituant un point chaud ayant l'utilisation la plus élevée. Le processeur et la mémoire sont comparés dans cet ordre.
Notation des Pods Pour chaque nœud constituant un point chaud, les Pods sont notés et triés avant l'expulsion : (1) priorité de classe la plus faible en premier (la valeur par défaut est 0, soit la plus basse) ; (2) classe QoS la plus faible ; (3) pour une priorité et une classe QoS égales, les Pods sont classés selon l'utilisation des ressources et l'heure de démarrage. Configurez les classes Priority ou QoS pour contrôler l'ordre d'expulsion.
Filtre Limite le périmètre du désordonnancement à des namespaces, Pods ou nœuds spécifiques à l'aide de sélecteurs d'étiquettes. Consultez evictableNamespaces, podSelectors et nodeSelector dans la section Configuration du plug-in LowNodeLoad.
Prévérification Avant l'expulsion, le désordonnanceur vérifie : (1) l'existence de nœuds correspondant à l'affinité de nœud, au sélecteur de nœud, aux tolérations et aux exigences en matière de ressources ; (2) que le nœud cible dispose d'une capacité suffisante sans dépasser highThresholds. La capacité disponible est calculée comme suit : (highThresholds − current load) × total capacity. Exemple : charge de 20 %, highThresholds de 70 %, 96 cœurs virtuels → (70 % − 20 %) × 96 = 48 cœurs virtuels disponibles.
Limitation de la migration Limite le nombre de migrations de Pods simultanées par nœud, namespace et charge de travail. Une fenêtre temporelle empêche les Pods d'une même charge de travail de migrer trop fréquemment. Compatible avec le Pod Disruption Budget (PDB) de Kubernetes pour un contrôle fin de la disponibilité.
Observabilité Des événements de migration sont émis pour chaque Pod, indiquant la raison et l'état. Exécutez kubectl get event | grep <pod-name> pour afficher les détails de la migration.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster ACK managé Pro

  • Planificateur ACK v1.22.15-ack-4.0 ou ultérieure, ack-koordinator v1.1.1-ack.1 ou ultérieure et Helm v3.0 ou ultérieure

Étape 1 : Activer le désordonnancement dans ack-koordinator

  • Nouvelle installation : Installez ack-koordinator et sélectionnez l'option Enable Descheduling For Ack-koordinator sur la page de configuration.

  • Installation existante : Sur la page de configuration, sélectionnez l'option Enable Descheduling For Ack-koordinator. Consultez la section Modifier ack-koordinator.

Étape 2 : Activer le plug-in LowNodeLoad

  1. Créez une ConfigMap koord-descheduler-config.yaml pour activer le plug-in LowNodeLoad.

    # koord-descheduler-config.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: koord-descheduler-config
      namespace: kube-system
    data:
      koord-descheduler-config: |
        # System configuration for koord-descheduler. Do not modify this section.
        apiVersion: descheduler/v1alpha2
        kind: DeschedulerConfiguration
        leaderElection:
          resourceLock: leases
          resourceName: koord-descheduler
          resourceNamespace: kube-system
        deschedulingInterval: 120s  # Execution interval. The descheduler runs every 120s.
                                    # Must not exceed detectorCacheTimeout (default: 5m).
        dryRun: false               # Set to true to run in read-only mode (no evictions).
        # End of system configuration.
    
        profiles:
        - name: koord-descheduler
          plugins:
            balance:
              enabled:
                - name: LowNodeLoad      # Enable the LowNodeLoad plugin for hot spot descheduling.
            evict:
              enabled:
                - name: MigrationController  # Enable the eviction and migration controller.
    
          pluginConfig:
          - name: MigrationController
            args:
              apiVersion: descheduler/v1alpha2
              kind: MigrationControllerArgs
              defaultJobMode: EvictDirectly
    
          - name: LowNodeLoad
            args:
              apiVersion: descheduler/v1alpha2
              kind: LowNodeLoadArgs
    
              # A node is idle if usage of ALL resources is below lowThresholds.
              lowThresholds:
                cpu: 20    # 20% CPU utilization
                memory: 30 # 30% memory utilization
    
              # A node is a hot spot if usage of ANY resource exceeds highThresholds.
              highThresholds:
                cpu: 50    # 50% CPU utilization
                memory: 60 # 60% memory utilization
    
              # Scopes descheduling to specific namespaces.
              # include and exclude are mutually exclusive—configure only one.
              evictableNamespaces:
                include:
                  - default
                # exclude:
                #   - "kube-system"
                #   - "koordinator-system"
  2. Appliquez la ConfigMap au cluster.

    kubectl apply -f koord-descheduler-config.yaml
  3. Redémarrez le désordonnanceur Koordinator pour charger la nouvelle configuration.

    kubectl -n kube-system scale deploy ack-koord-descheduler --replicas 0
    kubectl -n kube-system scale deploy ack-koord-descheduler --replicas 1

Étape 3 (facultative) : Activer la planification consciente de la charge

Pour obtenir un équilibrage de charge optimal, activez la planification consciente de la charge afin que le planificateur ACK évite de placer les Pods sur des nœuds constituant des points chauds après leur expulsion.

Définissez loadAwareThreshold de manière à correspondre à highThresholds. Des valeurs incompatibles risquent de provoquer la replanification des Pods expulsés sur des nœuds constituant des points chauds, en particulier lorsque peu de nœuds présentent une utilisation similaire.

Étape 4 : Vérifier le désordonnancement

Cet exemple utilise un cluster de trois nœuds, chacun disposant de 104 cœurs et de 396 GiB de mémoire.

  1. Créez un fichier stress-demo.yaml avec le contenu suivant.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: stress-demo
      namespace: default
      labels:
        app: stress-demo
    spec:
      replicas: 6
      selector:
        matchLabels:
          app: stress-demo
      template:
        metadata:
          name: stress-demo
          labels:
            app: stress-demo
        spec:
          containers:
            - args:
                - '--vm'
                - '2'
                - '--vm-bytes'
                - '1600M'
                - '-c'
                - '2'
                - '--vm-hang'
                - '2'
              command:
                - stress
              image: polinux/stress
              imagePullPolicy: Always
              name: stress
              resources:
                limits:
                  cpu: '2'
                  memory: 4Gi
                requests:
                  cpu: '2'
                  memory: 4Gi
          restartPolicy: Always
  2. Déployez la charge de travail de test de stress.

    kubectl create -f stress-demo.yaml

    Sortie attendue :

    deployment.apps/stress-demo created
  3. Vérifiez que les Pods sont en cours d'exécution et notez le nœud auquel ils ont été attribués.

    kubectl get pod -o wide

    Sortie attendue :

    NAME                           READY   STATUS    RESTARTS   AGE   IP            NODE                     NOMINATED NODE   READINESS GATES
    stress-demo-588f9646cf-s****   1/1     Running   0          82s   10.XX.XX.53   cn-beijing.10.XX.XX.53   <none>           <none>
  4. Augmentez la charge sur le nœud cn-beijing.10.XX.XX.53 et vérifiez l'utilisation des nœuds.

    kubectl top node

    Sortie attendue :

    NAME                      CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
    cn-beijing.10.XX.XX.215   17611m       17%    24358Mi         6%
    cn-beijing.10.XX.XX.53    63472m       63%    11969Mi         3%

    Le nœud cn-beijing.10.XX.XX.53 affiche une utilisation du processeur de 63 %, dépassant ainsi le seuil de point chaud de 50 %. Le nœud cn-beijing.10.XX.XX.215 affiche une utilisation du processeur de 17 %, inférieure au seuil d'inactivité de 20 %.

  5. Activez le plug-in LowNodeLoad comme décrit dans l'Étape 2 : Activer le plug-in LowNodeLoad.

  6. Surveillez les modifications apportées aux Pods.

    Par défaut, un nœud doit dépasser highThresholds lors de cinq vérifications consécutives (environ 10 minutes avec l'intervalle par défaut de 120 secondes) pour être classé comme point chaud.
    kubectl get pod -w

    Sortie attendue :

    NAME                           READY   STATUS             RESTARTS   AGE   IP             NODE                     NOMINATED NODE   READINESS GATES
    stress-demo-588f9646cf-s****   1/1     Terminating        0          59s   10.XX.XX.53    cn-beijing.10.XX.XX.53   <none>           <none>
    stress-demo-588f9646cf-7****   1/1     ContainerCreating  0          10s   10.XX.XX.215   cn-beijing.10.XX.XX.215  <none>           <none>
  7. Consultez l'événement d'expulsion.

    kubectl get event | grep stress-demo-588f9646cf-s****

    Sortie attendue :

    2m14s   Normal   Evicting        podmigrationjob/00fe88bd-****   Pod "default/stress-demo-588f9646cf-s****" evicted from node "cn-beijing.10.XX.XX.53" by the reason "node is overutilized, cpu usage(68.53%)>threshold(50.00%)"
    101s    Normal   EvictComplete   podmigrationjob/00fe88bd-****   Pod "default/stress-demo-588f9646cf-s****" has been evicted
    2m14s   Normal   Descheduled     pod/stress-demo-588f9646cf-s****   Pod evicted from node "cn-beijing.10.XX.XX.53" by the reason "node is overutilized, cpu usage(68.53%)>threshold(50.00%)"
    2m14s   Normal   Killing         pod/stress-demo-588f9646cf-s****   Stopping container stress

    Le Pod présent sur le nœud constituant un point chaud a été expulsé et migré vers le nœud cn-beijing.10.XX.XX.215.

Configuration avancée

Tous les paramètres du désordonnanceur Koordinator sont configurés dans la ConfigMap créée à l'étape 2.

# koord-descheduler-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: koord-descheduler-config
  namespace: kube-system
data:
  koord-descheduler-config: |
    # System configuration. Do not modify this section.
    apiVersion: descheduler/v1alpha2
    kind: DeschedulerConfiguration
    leaderElection:
      resourceLock: leases
      resourceName: koord-descheduler
      resourceNamespace: kube-system
    deschedulingInterval: 120s  # Execution interval. Must not exceed detectorCacheTimeout.
    dryRun: false               # Set to true for read-only mode (no evictions).
    # End of system configuration.

    profiles:
    - name: koord-descheduler
      plugins:
        deschedule:
          disabled:
            - name: "*"  # All plugins disabled by default (shown for reference only).
        balance:
          enabled:
            - name: LowNodeLoad
        evict:
          disabled:
            - name: "*"  # All plugins disabled by default (shown for reference only).
          enabled:
            - name: MigrationController

      pluginConfig:
      - name: MigrationController
        args:
          apiVersion: descheduler/v1alpha2
          kind: MigrationControllerArgs
          defaultJobMode: EvictDirectly
          maxMigratingPerNode: 1       # Max Pods migrating simultaneously per node. 0 = unlimited.
          maxMigratingPerNamespace: 1  # Max Pods migrating simultaneously per namespace.
          maxMigratingPerWorkload: 1   # Max Pods migrating simultaneously per workload (e.g., Deployment).
          maxUnavailablePerWorkload: 2 # Max unavailable replicas per workload during migration.
          evictLocalStoragePods: false # Whether to evict Pods using HostPath or emptyDir volumes.
          objectLimiters:
            workload:               # At most 1 replica migrated per workload within 5 minutes.
              duration: 5m
              maxMigrating: 1

      - name: LowNodeLoad
        args:
          apiVersion: descheduler/v1alpha2
          kind: LowNodeLoadArgs

          lowThresholds:
            cpu: 20
            memory: 30
          highThresholds:
            cpu: 50
            memory: 60

          anomalyCondition:
            consecutiveAbnormalities: 5  # Number of consecutive checks above highThresholds
                                          # before a node is classified as a hot spot.
                                          # Counter resets after eviction.

          detectorCacheTimeout: "5m"  # Cache duration for hot spot checks.
                                      # Must be >= deschedulingInterval.

          evictableNamespaces:
            include:
              - default
            # exclude:
            #   - "kube-system"
            #   - "koordinator-system"

          nodeSelector:  # Process only the specified nodes.
            matchLabels:
              alibabacloud.com/nodepool-id: np77f520e1108f47559e63809713ce****

          podSelectors:  # Process only the specified Pods.
          - name: lsPods
            selector:
              matchLabels:
                koordinator.sh/qosClass: "LS"

Configuration système du désordonnanceur Koordinator

Paramètre Type Valeur Description Exemple
dryRun boolean true / false (par défaut) Commutateur du mode lecture seule. Lorsqu'il est activé, aucune migration de Pod n'est initiée. false
deschedulingInterval time.Duration > 0s Intervalle d'exécution. Ne doit pas dépasser detectorCacheTimeout dans le plug-in LowNodeLoad. 120s

Configuration du contrôle d'expulsion et de migration

Paramètre Type Valeur Description Exemple
maxMigratingPerNode int64 ≥ 0 (par défaut : 2) Nombre maximal de Pods migrant simultanément par nœud. 0 = illimité. 2
maxMigratingPerNamespace int64 ≥ 0 (par défaut : illimité) Nombre maximal de Pods migrant simultanément par namespace. 0 = illimité. 1
maxMigratingPerWorkload intOrString ≥ 0 (par défaut : 10 %) Nombre maximal de Pods migrants ou pourcentage par charge de travail (par exemple, Deployment). 0 = illimité. Les charges de travail à réplica unique sont exclues. 1 ou 10%
maxUnavailablePerWorkload intOrString ≥ 0 (par défaut : 10 %), inférieur au nombre total de réplicas Nombre maximal de réplicas indisponibles ou pourcentage par charge de travail. 0 = illimité. 1 ou 10%
evictLocalStoragePods boolean true / false (par défaut) Indique s'il faut expulser les Pods utilisant des volumes HostPath ou emptyDir. Désactivé par défaut pour garantir la sécurité des données. false
objectLimiters.workload struct Durée > 0s (par défaut : 5m); MaxMigrating ≥ 0 (par défaut : 10 %) Limitation de la migration au niveau de la charge de travail. Duration : fenêtre temporelle. MaxMigrating : nombre maximal de réplicas migrés durant cette fenêtre. La valeur par défaut correspond à maxMigratingPerWorkload. duration: 5m / maxMigrating: 1 — maximum 1 réplica par charge de travail sur une période de 5 minutes.

Configuration du plug-in LowNodeLoad

Paramètre Type Valeur Description Exemple
highThresholds map[string]float64 [0, 100] (processeur et mémoire, en pourcentages) Seuil de point chaud. Les Pods présents sur les nœuds dépassant ce seuil sont éligibles à l'expulsion. Si tous les nœuds dépassent lowThresholds, le désordonnancement est suspendu. cpu: 55 / memory: 75
lowThresholds map[string]float64 [0, 100] (processeur et mémoire, en pourcentages) Seuil d'inactivité. Si tous les nœuds dépassent ce seuil, la charge globale du cluster est considérée comme élevée et le désordonnancement est suspendu. cpu: 25 / memory: 25
anomalyCondition.consecutiveAbnormalities int64 > 0 (par défaut : 5) Nombre de cycles consécutifs pendant lesquels un nœud doit dépasser highThresholds pour être classé comme point chaud. Le compteur est réinitialisé après une expulsion. 5
detectorCacheTimeout \*metav1.Duration Voir le format Duration (par défaut : 5m) Durée de mise en cache pour les vérifications des points chauds. Doit être supérieure ou égale à deschedulingInterval. 1h, 300s, 2m30s
evictableNamespaces include: string / exclude: string Namespaces du cluster Limite le périmètre du désordonnancement à des namespaces spécifiques. Laissez vide pour traiter tous les Pods. Les options include et exclude s'excluent mutuellement. exclude: ["kube-system", "koordinator-system"]
nodeSelector metav1.LabelSelector Voir la section Étiquettes et sélecteurs Limite le périmètre du désordonnancement à des nœuds spécifiques à l'aide d'un sélecteur d'étiquettes. Prend en charge un pool de nœuds unique (matchLabels) et plusieurs pools de nœuds (matchExpressions). matchLabels: {alibabacloud.com/nodepool-id: np****}
podSelectors liste de PodSelector Voir la section Étiquettes et sélecteurs Limite le périmètre du désordonnancement à des Pods spécifiques à l'aide de sélecteurs d'étiquettes. Plusieurs groupes de sélecteurs sont pris en charge. matchLabels: {koordinator.sh/qosClass: "LS"}

FAQ

L'utilisation du nœud dépasse le seuil, mais les Pods ne sont pas expulsés

La cause la plus fréquente est une configuration inactive du désordonnanceur. Vérifiez les points suivants dans l'ordre :

  1. Périmètre non configuré : Le désordonnanceur traite uniquement les namespaces et les nœuds explicitement inclus (ou non exclus). Vérifiez les paramètres evictableNamespaces et nodeSelector.

  2. Désordonnanceur non redémarré après modification de la configuration : Les modifications de configuration nécessitent un redémarrage. Consultez l'Étape 2 pour obtenir les instructions.

  3. Intervalle supérieur au délai d'expiration du cache : deschedulingInterval (par défaut : 2 min) ne doit pas dépasser detectorCacheTimeout (par défaut : 5 min), sinon la détection des points chauds échoue. Ajustez ces valeurs et redémarrez.

  4. Nœud ne dépassant pas systématiquement le seuil : Le désordonnanceur utilise une moyenne lissée. Un nœud n'est classé comme point chaud qu'après avoir dépassé highThresholds pendant consecutiveAbnormalities cycles consécutifs (par défaut : 5, soit environ 10 minutes). La commande kubectl top node ne reflète que la dernière minute ; effectuez une surveillance sur une période plus longue pour confirmer une utilisation soutenue.

  5. Capacité insuffisante du cluster : Avant d'expulser un Pod, le désordonnanceur vérifie qu'un autre nœud dispose d'une capacité libre suffisante. Si ce n'est pas le cas, l'expulsion est ignorée. Ajoutez des nœuds pour augmenter la capacité.

  6. Charge de travail à réplica unique : Les Pods à réplica unique ne sont pas expulsés par défaut. Pour contourner cette restriction, ajoutez l'annotation descheduler.alpha.kubernetes.io/evict: "true" au Pod ou aux métadonnées du modèle de la charge de travail (spec.template.metadata). Cette fonctionnalité n'est pas prise en charge dans les versions ack-koordinator v1.3.0-ack1.6 à v1.3.0-ack1.8. Effectuez la mise à niveau vers la dernière version pour utiliser cette fonctionnalité.

  7. Pod utilisant HostPath ou emptyDir : Ces Pods sont exclus du désordonnancement par défaut. Définissez evictLocalStoragePods: true dans MigrationController pour activer l'expulsion. Consultez la section Configuration du contrôle d'expulsion et de migration.

  8. Nombre excessif de réplicas indisponibles ou en cours de migration : Si le nombre de réplicas indisponibles ou en cours de migration atteint maxUnavailablePerWorkload ou maxMigratingPerWorkload, les expulsions suivantes sont bloquées. Attendez la fin des expulsions en cours ou augmentez ces limites.

  9. Nombre de réplicas inférieur ou égal à la limite de migration : Si le nombre total de réplicas est inférieur ou égal à maxMigratingPerWorkload ou maxUnavailablePerWorkload, la charge de travail est ignorée. Diminuez ces valeurs ou utilisez des pourcentages.

Le désordonnanceur redémarre fréquemment

Une ConfigMap manquante ou invalide provoque des boucles de redémarrage. Vérifiez le format de la ConfigMap en vous référant à la section Configuration avancée, puis procédez au redémarrage comme indiqué à l'Étape 2.

Interaction entre la planification consciente de la charge et le désordonnancement des points chauds

Activez les deux fonctionnalités pour obtenir un équilibrage de charge optimal. Le désordonnancement expulse les Pods des nœuds surchargés, tandis que la planification consciente de la charge place les Pods replanifiés sur des nœuds dont l'utilisation est plus faible.

Définissez loadAwareThreshold de manière à correspondre à highThresholds. Consultez les sections Utiliser la planification consciente de la charge et Politiques de planification.

Quelles données d'utilisation le désordonnanceur utilise-t-il ?

Le désordonnanceur calcule une moyenne lissée sur plusieurs cycles. L'expulsion ne se déclenche que lorsque l'utilisation moyenne reste supérieure à highThresholds pendant le nombre de cycles consécutifs configuré (par défaut : environ 10 minutes).

Le désordonnanceur exclut le cache de page des calculs de mémoire (celui-ci pouvant être libéré par le système d'exploitation). La commande kubectl top node inclut le cache de page ; utilisez Managed Service for Prometheus pour consulter la métrique réelle.

Étapes suivantes