Outil de redimensionnement automatique de cluster

Lorsque vous activez l'extension Cluster Autoscaler, vous pouvez transmettre les paires clé/valeur suivantes en tant qu'arguments.

Arguments de configuration communs à tous les modules de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
affinity affinité

Groupe de règles de programmation d'affinité.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL NULL
nodeSelectors Sélecteurs de noeud

Vous pouvez utiliser des sélecteurs de noeud et des libellés de noeud pour contrôler les noeuds de processus actif sur lesquels les pods d'extension sont exécutés.

Pour qu'un pod s'exécute sur un noeud, le sélecteur de noeud du pod doit avoir la même clé/valeur que l'étiquette du noeud.

Définissez nodeSelectors sur une paire clé/valeur correspondant à la fois au sélecteur de noeud du pod et au libellé du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL {"foo":"bar", "foo2": "bar2"}

Le pod s'exécutera uniquement sur les noeuds possédant le libellé foo=bar ou foo2=bar2.

numOfReplicas numOfReplicas Nombre de répliques du déploiement de l'extension.

(Pour CoreDNS, utilisez plutôt nodesPerReplica.)

Requis 1

Crée une réplique du déploiement d'extension par cluster.

2

Crée deux répliques du déploiement d'extension par cluster.

rollingUpdate rollingUpdate

Contrôle le comportement souhaité de la mise à jour non simultanée par maxSurge et maxUnavailable.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL NULL
tolerations tolérances

Vous pouvez utiliser des tolérances et des taches pour contrôler les noeuds de processus actif sur lesquels les pods d'extension s'exécutent.

Pour qu'un pod s'exécute sur un noeud présentant une entorse, le pod doit avoir une tolérance correspondante.

Définissez tolerations sur une paire clé/valeur correspondant à la fois à la tolérance du pod et à la tache du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Seuls les pods présentant cette tolérance peuvent être exécutés sur des noeuds de processus actif présentant la tache tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Comment répartir les pods correspondants entre la topologie donnée.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL NULL
Arguments de configuration propres à ce module complémentaire de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
annotations annotations

Annotations à transmettre au déploiement de l'outil de redimensionnement automatique de cluster.

Par exemple, "{\"prometheus.io/scrape\":\"true\",\"prometheus.io/port\":\"8086\"}"

Format JSON en texte brut ou encodé Base64.

Facultatif ""
authType authType Le type d'authentification utilisé par l'outil de redimensionnement automatique de cluster lors de l'envoi de demandes est l'un des suivants :
  • instance indique le principal d'instance.
  • workload indique l'identité de la charge globale.
Requis instance
balanceSimilarNodeGroups balanceSimilarNodeGroups Détecter les groupes de noeuds similaires et équilibrer le nombre de noeuds entre eux. Facultatif false
balancingIgnoreLabel balancingIgnoreLabel Définissez un libellé de noeud qui doit être ignoré lors de la prise en compte de la similarité des groupes de noeuds. Un libellé par occurrence d'indicateur. Le format est label1, label2. Facultatif ""
balancingLabel balancingLabel Définissez un libellé de noeud à utiliser lors de la comparaison de la similarité des groupes de noeuds. Si elle est définie, toutes les autres logiques de comparaison sont désactivées et seuls les libellés sont pris en compte lors de la comparaison des groupes. Un libellé par occurrence d'indicateur. Le format est label1, label2. Facultatif ""
cluster-autoscaler.ContainerResources ressources de conteneur cluster-autoscaler

Vous pouvez spécifier les quantités de ressources demandées par les conteneurs d'extension et définir les limites d'utilisation des ressources que les conteneurs d'extension ne peuvent pas dépasser.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Créez des conteneurs d'extension qui demandent 100 milllicores de CPU et 100 mégaoctets de mémoire. Limitez les conteneurs d'extension à 500 milllicores de CPU et 200 mégaoctets de mémoire.

cordonNodeBeforeTerminating (Non affiché dans la console) Nœuds de cordon d'autorité de certification avant la terminaison lors du processus de mise à l'échelle. Facultatif false
coresTotal (Non affiché dans la console) Nombre minimal et maximal de coeurs dans le cluster, au format <min>:<max>. L'outil de redimensionnement automatique de cluster ne redimensionnera pas le cluster au-delà de ces chiffres. Facultatif 0:320000
daemonsetEvictionForEmptyNodes (Non affiché dans la console) Indique si les pods DaemonSet seront arrêtés progressivement à partir de noeuds vides. Facultatif false
daemonsetEvictionForOccupiedNodes (Non affiché dans la console) Indique si les pods DaemonSet seront arrêtés progressivement à partir de noeuds non vides. Facultatif true
debuggingSnapshotEnabled (Non affiché dans la console) Indique si le cliché de débogage de la fonction de redimensionnement automatique de cluster est activé. Facultatif false
emitPerNodegroupMetrics (Non affiché dans la console) Si la valeur est True, émettez des mesures par groupe de noeuds. Facultatif false
enforceNodeGroupMinSize (Non affiché dans la console) L'autorité de certification doit-elle augmenter le groupe de noeuds à la taille minimale configurée si nécessaire ? Facultatif false
estimator (Non affiché dans la console) Type d'estimateur de ressource à utiliser pour l'augmentation. Facultatif binpacking
expander expandeur Type d'expandeur de groupe de noeuds à utiliser pour l'augmentation.

expander=price n'est pas pris en charge.

Facultatif random
expendablePodsPriorityCutoff (Non affiché dans la console) Les pods dont la priorité est inférieure à la limite seront consommables. Ils peuvent être tués sans aucune considération pendant l'échelle et ils ne provoquent pas l'échelle. Les pods avec une priorité NULL (PodPriority désactivé) ne sont pas durables. Facultatif -10
ignoreDaemonsetsUtilization (Non affiché dans la console) Indique si les pods DaemonSet seront ignorés lors du calcul de l'utilisation des ressources pour le redimensionnement. Facultatif false
ignoreMirrorPodsUtilization (Non affiché dans la console) Indique si les pods miroir seront ignorés lors du calcul de l'utilisation des ressources pour la réduction. Facultatif false
leaderElect (Non affiché dans la console) Commencez un client d'élection de leader et obtenez le leadership avant d'exécuter la boucle principale. Activez cette option lorsque vous exécutez des composants répliqués à des fins de haute disponibilité. Facultatif true
leaderElectLeaseDuration (Non affiché dans la console) La durée que les candidats non-dirigeants attendent après avoir observé un renouvellement du leadership jusqu'à ce qu'ils tentent d'acquérir le leadership d'un créneau de leader dirigé mais non renouvelé. Il s'agit de la durée maximale pendant laquelle un leader peut être arrêté avant d'être remplacé par un autre candidat. Cela ne s'applique que si l'élection de leader est activée. Facultatif 15s
leaderElectRenewDeadline (Non affiché dans la console) Intervalle entre les tentatives de l'outil de redimensionnement automatique de cluster actif de renouveler un créneau de direction avant qu'il ne cesse de prendre la tête. Cette valeur doit être inférieure ou égale à la durée de la location. Cela ne s'applique que si l'élection de leader est activée. Facultatif 10s
leaderElectResourceLock (Non affiché dans la console) Type d'objet de ressource utilisé pour le verrouillage lors de l'élection de leader. Les options prises en charge sont leases (par défaut), endpoints, endpointsleases, configmaps et configmapsleases. Facultatif leases
leaderElectRetryPeriod (Non affiché dans la console) La durée que les clients doivent attendre entre la tentative d'acquisition et le renouvellement d'un leadership. Cela ne s'applique que si l'élection de leader est activée. Facultatif 2s
maxAutoprovisionedNodeGroupCount (Non affiché dans la console) Nombre maximal de groupes provisionnés automatiquement dans le cluster. Facultatif 15
maxEmptyBulkDelete maxEmptyBulkDelete Nombre maximal de noeuds vides pouvant être supprimés en même temps. Facultatif 10
maxFailingTime (Non affiché dans la console) Durée maximale de la dernière exécution de l'outil de redimensionnement automatique enregistrée avant le redémarrage automatique. Facultatif 15m
maxGracefulTerminationSec (Non affiché dans la console) Nombre maximal de secondes pendant lesquelles l'autorité de certification attend l'arrêt du pod lors de la tentative de réduction d'un noeud. Facultatif 600
maxInactivity (Non affiché dans la console) Durée maximale à partir de la dernière activité de l'outil de redimensionnement automatique enregistrée avant le redémarrage automatique. Facultatif 10m
maxNodeProvisionTime maxNodeProvisionTime Durée maximale pendant laquelle l'autorité de certification attend que le noeud soit provisionné. Facultatif 15m
maxNodesTotal (Non affiché dans la console) Nombre maximal de noeuds dans tous les pools de noeuds. L'outil de redimensionnement automatique de cluster n'augmentera pas le cluster au-delà de ce nombre. Facultatif 0
maxTotalUnreadyPercentage (Non affiché dans la console) Pourcentage maximal de noeuds non prêts dans le cluster. Après ce dépassement, l'autorité de certification arrête les opérations. Facultatif 45
memoryTotal (Non affiché dans la console) Nombre minimal et maximal de gigaoctets de mémoire dans le cluster, au format <min>:<max>. L'outil de redimensionnement automatique de cluster ne redimensionnera pas le cluster au-delà de ces chiffres. Facultatif 0:6400000
minReplicaCount (Non affiché dans la console) Nombre minimal de répliques qu'un jeu de répliques ou un contrôleur de réplication doit avoir pour autoriser la suppression de leurs pods. Facultatif 0
nodes noeuds

Liste des noeuds minimum, nombre maximum de noeuds et OCID du pool de noeuds à gérer par l'outil de redimensionnement automatique de cluster.

Le format est <min>:<max>:<node-pool1-ocid>, <min>:<max>:<node-pool2-ocid>.

Utilisez nodes ou nodeGroupAutoDiscovery, mais pas les deux.

Format JSON en texte brut ou encodé Base64.

Obligatoire, si nodeGroupAutoDiscovery n'est pas défini ""
nodeGroupAutoDiscovery (Non affiché dans la console)

Liste des paires clé/valeur de balise, nombre minimal de noeuds, nombre maximal de noeuds et OCID du compartiment dans lequel se trouve le pool de noeuds à gérer par l'outil de redimensionnement automatique de cluster.

Le format est compartmentId:<compartment-ocid>,nodepoolTags:<tagKey1>=<tagValue1>&<tagKey2>=<tagValue2>,min:<min-nodes>,max:<max-nodes>

Utilisez nodeGroupAutoDiscovery ou nodes, mais pas les deux.

Prise en charge avec Cluster Autoscaler version 1.30.3, version 1.31.1 et version 1.32.0, et versions ultérieures.

Format JSON en texte brut ou encodé Base64.

Obligatoire, si nodes n'est pas défini
okTotalUnreadyCount (Non affiché dans la console) Nombre de noeuds non prêts autorisés, quel que soit maxTotalUnreadyPercentage. Facultatif 3
recordDuplicatedEvents (Non affiché dans la console) Activez l'outil de redimensionnement automatique pour imprimer les événements en double dans une fenêtre de 5 minutes. Facultatif false
scaleDownCandidatesPoolMinCount (Non affiché dans la console)

Nombre minimal de noeuds considérés comme des candidats supplémentaires non vides pour la réduction lorsque certains candidats de l'itération précédente ne sont plus valides. Lors du calcul de la taille du pool pour les candidats supplémentaires, nous prenons.

max(#nodes * scale-down-candidates-pool-ratio,
              scale-down-candidates-pool-min-count)
Requis 50
scaleDownCandidatesPoolRatio (Non affiché dans la console) Ratio de noeuds considérés comme des candidats supplémentaires non vides pour la réduction lorsque certains candidats de l'itération précédente ne sont plus valides. Une valeur inférieure signifie une meilleure réactivité de l'autorité de certification, mais une latence de réduction plus lente possible. Une valeur plus élevée peut affecter les performances des CA avec des clusters volumineux (centaines de noeuds). Définissez la valeur sur 1.0 pour désactiver cette heuristique - CA prendra tous les noeuds en tant que candidats supplémentaires. Requis 0.1
scaleDownDelayAfterAdd scaleDownDelayAfterAdd Combien de temps après l'augmentation de cette réduction, l'évaluation reprend. Requis 10m
scaleDownDelayAfterDelete (Non affiché dans la console) Combien de temps après la suppression du noeud qui réduit l'évaluation reprend, la valeur par défaut est scan-interval. Requis 10s
scaleDownDelayAfterFailure (Non affiché dans la console) Durée après laquelle l'échec du redimensionnement reprend. Requis 3m
scaleDownEnabled scaleDownEnabled Le CA doit-il réduire le cluster ? Facultatif true
scaleDownNonEmptyCandidatesCount (Non affiché dans la console) Nombre maximal de noeuds non vides considérés dans une itération comme candidats pour le redimensionnement avec purge. Une valeur inférieure signifie une meilleure réactivité de l'autorité de certification, mais une latence de réduction plus lente possible. Une valeur plus élevée peut affecter les performances des CA avec des clusters volumineux (centaines de noeuds). Définir sur une valeur non positive pour désactiver cette heuristique - L'autorité de certification ne limitera pas le nombre de noeuds qu'elle considère. Requis 30
scaleDownUnneededTime scaleDownUnneededTime Durée pendant laquelle un noeud ne doit pas être utilisé avant d'être éligible à la réduction. Requis 10m
scaleDownUnreadyTime (Non affiché dans la console) Durée pendant laquelle un noeud non prêt doit être inutile pour pouvoir être réduit. Requis 20m
scaleDownUtilizationThreshold (Non affiché dans la console) Niveau d'utilisation du noeud, défini comme la somme des ressources demandées divisée par la capacité, au-dessous duquel un noeud peut être pris en compte pour la réduction. Requis 0.5
scanInterval scanInterval Fréquence à laquelle le cluster est réévalué pour l'augmentation ou la réduction. Facultatif 10s
skipNodesWithCustomControllerPods (Non affiché dans la console) Si la valeur est true, l'outil de redimensionnement automatique de cluster ne supprimera jamais les noeuds dont les pods appartiennent à des contrôleurs personnalisés. Facultatif true
skipNodesWithLocalStorage (Non affiché dans la console) Si true, l'outil de redimensionnement automatique de cluster ne supprimera jamais les noeuds avec des pods avec un stockage local, par exemple EmptyDir ou HostPath. Facultatif true
skipNodesWithSystemPods (Non affiché dans la console) Si true, l'outil de redimensionnement automatique de cluster ne supprimera jamais les noeuds contenant des pods du kube-system (à l'exception de DaemonSet ou des pods miroir). Facultatif true
statusConfigMapName (Non affiché dans la console) Nom du statut ConfigMap écrit par l'autorité de certification. Facultatif cluster-autoscaler-status
stderrthreshold (Non affiché dans la console) Seuil de gravité du journal, au-delà duquel les journaux sont envoyés à stderr. Par exemple, si vous définissez cette valeur sur error, tous les journaux dont la gravité est supérieure à error sont envoyés à stderr. Facultatif info
unremovableNodeRecheckTimeout unremovableNodeRecheckTimeout Délai d'expiration avant vérification d'un noeud qui n'a pas pu être enlevé auparavant. Requis 5m
v (Non affiché dans la console) Numéro de niveau de détail de la journalisation. Facultatif 0
writeStatusConfigmap (Non affiché dans la console) L'autorité de certification doit-elle écrire des informations de statut dans un configmap ? Facultatif true