For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/containers-orchestration/managed-kubernetes/configure-cluster-autoscaler.md.

Configurer l'autoscaler de cluster

Voir en Markdown

Découvrez comment configurer l'autoscaler de cluster sur OVHcloud Managed Kubernetes

Objectif

OVHcloud Managed Kubernetes Service vous fournit des clusters Kubernetes sans que vous ayez à vous soucier de leur installation ou de leur exploitation.

Au fil de la vie de votre cluster, vous pouvez vouloir ajuster dynamiquement sa taille pour l'adapter à vos workloads. L'autoscaler de cluster simplifie cette tâche en augmentant ou en réduisant la taille de votre cluster OVHcloud Managed Kubernetes pour répondre à la demande de vos workloads.

Ce guide fait suite au guide Utiliser l'autoscaler de cluster et présente en détail la configuration de l'autoscaler de cluster.

Prérequis

En pratique

Configuration de l'autoscaler

Lorsque l'autoscaler est activé sur un pool de nœuds, il utilise une configuration par défaut.

Voici une description des paramètres utilisés dans la configuration de l'autoscaler et de leur valeur par défaut :

ParamètreDescriptionValeur par défaut
scan-intervalFréquence à laquelle le cluster est réévalué pour une montée ou une descente en charge10 secondes
scale-down-delay-after-addDélai après une montée en charge avant la reprise de l'évaluation de la descente en charge10 minutes
scale-down-delay-after-deleteDélai après la suppression d'un nœud avant la reprise de l'évaluation de la descente en chargescan-interval
scale-down-delay-after-failureDélai après un échec de descente en charge avant la reprise de l'évaluation de la descente en charge3 minutes
scale-down-unneeded-timeDurée pendant laquelle un nœud doit être inutile avant d'être éligible à la descente en charge10 minutes
scale-down-unready-timeDurée pendant laquelle un nœud non prêt doit être inutile avant d'être éligible à la descente en charge20 minutes
scale-down-utilization-thresholdTaux d'utilisation (ressources demandées / capacité) en dessous duquel un nœud est considéré pour la descente en charge0.5
max-graceful-termination-secDélai maximal, en secondes, d'attente de la terminaison des pods lors de la réduction d'un nœud600 secondes
balance-similar-node-groupsÉquilibre le nombre de nœuds entre les pools partageant le même type d'instance et les mêmes labelsfalse
expanderStratégie de sélection du pool de nœuds pour la montée en charge : most-pods, random, least-waste, priorityrandom
skip-nodes-with-local-storageNe jamais supprimer les nœuds dont les pods utilisent du stockage local (EmptyDir ou HostPath)false
skip-nodes-with-system-podsNe jamais supprimer les nœuds avec des pods kube-system (sauf DaemonSets et pods miroirs)false
max-empty-bulk-deleteNombre maximal de nœuds vides pouvant être supprimés simultanément10 nœuds
new-pod-scale-up-delayÂge minimal d'un pod non planifié avant que l'autoscaler n'agisse sur celui-ci0 seconde
max-total-unready-percentagePourcentage maximal de nœuds non prêts ; l'autoscaler s'arrête si ce seuil est dépassé45%
max-node-provision-timeDélai maximal d'attente de l'autoscaler pour le provisionnement d'un nœud15 minutes
ok-total-unready-countNombre de nœuds non prêts autorisés, indépendamment du seuil en pourcentage3 nœuds

Vous pouvez obtenir plus d'informations sur ces paramètres dans la documentation de l'autoscaler Kubernetes.

Si vous pensez que nous devrions réévaluer la valeur par défaut et/ou prioriser la possible personnalisation d'un de ces paramètres, n'hésitez pas à créer un ticket sur notre roadmap publique.

Configurer l'autoscaler

La façon la plus simple d'activer l'autoscaler consiste à utiliser l'API Kubernetes, par exemple via kubectl.

Utiliser l'API Kubernetes

Lorsque l'autoscaler est activé sur un pool de nœuds, il utilise une configuration par défaut.

Pour lister les pools de nœuds, vous pouvez utiliser :

kubectl get nodepools

Vous pouvez modifier plusieurs valeurs de paramètres via la commande kubectl :

kubectl patch nodepool <your_nodepool_name> --type="merge" --patch='{"spec": {"autoscaling": {"scaleDownUnneededTimeSeconds": <a_value>, "scaleDownUnreadyTimeSeconds": <another_value>, "scaleDownUtilizationThreshold": "<and_another_one>"}}}'

Dans mon exemple de cluster :

$ kubectl get nodepool nodepool-b2-7 -o json | jq .spec
{
  "antiAffinity": false,
  "autoscale": true,
  "autoscaling": {
    "scaleDownUnneededTimeSeconds": 600,
    "scaleDownUnreadyTimeSeconds": 1200,
    "scaleDownUtilizationThreshold": "0.5"
  },
  "desiredNodes": 3,
  "flavor": "b2-7",
  "maxNodes": 100,
  "minNodes": 0,
  "monthlyBilled": false
}
$ kubectl patch nodepool nodepool-b2-7 --type="merge" --patch='{"spec": {"autoscaling": {"scaleDownUnneededTimeSeconds": 900, "scaleDownUnreadyTimeSeconds": 1500, "scaleDownUtilizationThreshold": "0.7"}}}'
nodepool.kube.cloud.ovh.com/nodepool-b2-7 patched
$ kubectl get nodepool nodepool-b2-7 -o json | jq .spec
{
  "antiAffinity": false,
  "autoscale": true,
  "autoscaling": {
    "scaleDownUnneededTimeSeconds": 900,
    "scaleDownUnreadyTimeSeconds": 1500,
    "scaleDownUtilizationThreshold": "0.7"
  },
  "desiredNodes": 3,
  "flavor": "b2-7",
  "maxNodes": 100,
  "minNodes": 0,
  "monthlyBilled": false
}

Pour le moment, seuls les paramètres suivants sont modifiables :

  • autoscale
  • autoscaling
  • desiredNodes
  • minNodes
  • maxNodes

Si vous pensez que nous devrions prioriser la possible personnalisation d'autres paramètres d'autoscaling, n'hésitez pas à créer un ticket sur notre roadmap publique.

Aller plus loin

Pour avoir une vue d'ensemble d'OVHcloud Managed Kubernetes Service, vous pouvez consulter la page OVHcloud Managed Kubernetes.

Sinon, pour l'ignorer et en savoir plus sur l'utilisation pratique de votre cluster Kubernetes, nous vous invitons à consulter nos tutoriels.

  • Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

  • Échangez avec notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?