Cluster Autoscaler

Wenn Sie das Cluster Autoscaler-Add-on aktivieren, können Sie die folgenden Schlüssel/Wert-Paare als Argumente übergeben.

Konfigurationsargumente, die allen Cluster-Add-ons gemeinsam sind
Schlüssel (API und CLI) Anzeigename des Schlüssels (Konsole) Beschreibung Erforderlich/Optional Standardwert Beispielwert
affinity Affinität

Eine Gruppe von Affinitätsplanungsregeln.

JSON-Format im Klartext oder Base64-codiert.

Optional Null Null
nodeSelectors Knotenselektoren

Mit Knotenselektoren und Knotenlabels können Sie die Worker-Knoten steuern, auf denen Add-on-Pods ausgeführt werden.

Damit ein Pod auf einem Knoten ausgeführt werden kann, muss der Knotenselektor des Pods denselben Schlüssel/Wert wie das Label des Knotens aufweisen.

Setzen Sie nodeSelectors auf ein Schlüssel/Wert-Paar, das sowohl dem Knotenselektor des Pods als auch dem Label des Worker-Knotens entspricht.

JSON-Format im Klartext oder Base64-codiert.

Optional Null {"foo":"bar", "foo2": "bar2"}

Der Pod wird nur auf Knoten ausgeführt, die das Label foo=bar oder foo2=bar2 aufweisen.

numOfReplicas numOfReplicas Die Anzahl der Replikate der Add-on-Bereitstellung.

(Verwenden Sie für CoreDNS stattdessen nodesPerReplica.)

Erforderlich 1

Erstellt ein Replikat des Add-on-Deployments pro Cluster.

2

Erstellt zwei Replikate des Add-on-Deployments pro Cluster.

rollingUpdate rollingUpdate

Steuert das gewünschte Verhalten der rollierenden Aktualisierung durch maxSurge und maxUnavailable.

JSON-Format im Klartext oder Base64-codiert.

Optional Null Null
tolerations Toleranzen

Mit Taints und Toleranzen können Sie die Worker-Knoten steuern, auf denen Add-on-Pods ausgeführt werden.

Damit ein Pod auf einem Knoten mit einem Taint ausgeführt werden kann, muss der Pod eine entsprechende Toleranz aufweisen.

Setzen Sie tolerations auf ein Schlüssel/Wert-Paar, das sowohl der Podtoleranz als auch dem Taint des Worker-Knotens entspricht.

JSON-Format im Klartext oder Base64-codiert.

Optional Null [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Nur Pods mit dieser Toleranz können auf Worker-Knoten ausgeführt werden, die den Taint tolerationKeyFoo=tolerationValBar:noSchedule aufweisen.

topologySpreadConstraints topologySpreadConstraints

So verteilen Sie passende Pods auf die angegebene Topologie.

JSON-Format im Klartext oder Base64-codiert.

Optional Null Null
Für dieses Cluster-Add-on spezifische Konfigurationsargumente
Schlüssel (API und CLI) Anzeigename des Schlüssels (Konsole) Beschreibung Erforderlich/Optional Standardwert Beispielwert
annotations Anmerkungen

Anmerkungen, die an das Cluster Autoscaler-Deployment übergeben werden.

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

JSON-Format im Klartext oder Base64-codiert.

Optional ""
authType authType Der Authentifizierungstyp, den Cluster Autoscaler beim Erstellen von Anforderungen verwendet, wie folgt:
  • instance gibt Instanz-Principal an.
  • workload gibt Workload-Identität an
Erforderlich instance
balanceSimilarNodeGroups balanceSimilarNodeGroups Erkennen Sie ähnliche Knotengruppen, und gleichen Sie die Anzahl der Knoten zwischen ihnen aus. Optional false
balancingIgnoreLabel balancingIgnoreLabel Definieren Sie ein Knotenlabel, das bei der Betrachtung der Knotengruppenähnlichkeit ignoriert werden soll. Ein Label pro Kennzeichenereignis. Das Format lautet label1, label2. Optional ""
balancingLabel balancingLabel Definieren Sie ein Knotenlabel, das beim Vergleich der Knotengruppenähnlichkeit verwendet werden soll. Wenn diese Option aktiviert ist, ist die gesamte andere Vergleichslogik deaktiviert, und beim Vergleich von Gruppen werden nur Labels berücksichtigt. Ein Label pro Kennzeichenereignis. Das Format lautet label1, label2. Optional ""
cluster-autoscaler.ContainerResources cluster-autoscaler-Containerressourcen

Sie können die Ressourcenmengen angeben, die von den Add-on-Containern angefordert werden, und Grenzwerte für die Ressourcennutzung festlegen, die von den Add-on-Containern nicht überschritten werden dürfen.

JSON-Format im Klartext oder Base64-codiert.

Optional Null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Erstellen Sie Add-on-Container, die 100 Millicores CPU und 100 Mebibyte Speicher anfordern. Begrenzen Sie Add-on-Container auf 500 Millicores CPU und 200 Mebibyte Arbeitsspeicher.

cordonNodeBeforeTerminating (Nicht in Konsole angezeigt) Muss CA-Cordonknoten vor dem Beenden während des Downscale-Prozesses sein. Optional false
coresTotal (Nicht in Konsole angezeigt) Mindest- und Höchstanzahl von Cores im Cluster im Format <min>:<max>. Cluster-Autoscaler skaliert das Cluster nicht über diese Zahlen hinaus. Optional 0:320000
daemonsetEvictionForEmptyNodes (Nicht in Konsole angezeigt) Gibt an, ob DaemonSet-Pods von leeren Knoten ordnungsgemäß beendet werden. Optional false
daemonsetEvictionForOccupiedNodes (Nicht in Konsole angezeigt) Gibt an, ob DaemonSet-Pods von nicht leeren Knoten ordnungsgemäß beendet werden. Optional true
debuggingSnapshotEnabled (Nicht in Konsole angezeigt) Gibt an, ob der Debugging-Snapshot der Cluster-Autoscaler-Funktion aktiviert ist. Optional false
emitPerNodegroupMetrics (Nicht in Konsole angezeigt) Bei 'Wahr' werden pro Knotengruppenmetriken ausgegeben. Optional false
enforceNodeGroupMinSize (Nicht in Konsole angezeigt) Sollte CA die Knotengruppe bei Bedarf auf die konfigurierte Mindestgröße skalieren. Optional false
estimator (Nicht in Konsole angezeigt) Typ des Ressourcenschätzers für die vertikale Skalierung. Optional binpacking
expander Expander Typ des Knotengruppenerweiterers für die vertikale Skalierung.

Beachten Sie, dass expander=price nicht unterstützt wird.

Optional random
expendablePodsPriorityCutoff (Nicht in Konsole angezeigt) Pods mit Priorität unter dem Cutoff-Wert sind aufwendbar. Sie können ohne Rücksicht während der Skalierung getötet werden und verursachen keine Skalierung. Pods mit Nullpriorität (PodPriority deaktiviert) sind nicht aussetzbar. Optional -10
ignoreDaemonsetsUtilization (Nicht in Konsole angezeigt) Gibt an, ob DaemonSet-Pods beim Berechnen der Ressourcenauslastung für das horizontale Skalieren ignoriert werden. Optional false
ignoreMirrorPodsUtilization (Nicht in Konsole angezeigt) Gibt an, ob Mirror-Pods bei der Berechnung der Ressourcenauslastung für die horizontale Skalierung ignoriert werden. Optional false
leaderElect (Nicht in Konsole angezeigt) Starten Sie einen Leader Wahl Client und gewinnen Sie Führung, bevor Sie die Hauptschleife ausführen. Aktivieren Sie diese Option, wenn replizierte Komponenten für High Availability ausgeführt werden. Optional true
leaderElectLeaseDuration (Nicht in Konsole angezeigt) Die Dauer, die Nicht-Leader-Kandidaten warten, nachdem sie eine Leadership-Erneuerung beobachtet haben, bis sie versuchen, die Führung eines geführten, aber nicht erneuerten Leader-Slots zu übernehmen. Dies ist die maximale Dauer, die ein Leader gestoppt werden kann, bevor er durch einen anderen Kandidaten ersetzt wird. Dies gilt nur, wenn die Wahl des Vorsitzenden aktiviert ist. Optional 15s
leaderElectRenewDeadline (Nicht in Konsole angezeigt) Das Intervall zwischen Versuchen des aktiven Cluster-Autoscalers, einen Leadership-Slot zu erneuern, bevor er die Führung stoppt. Dieser Wert muss kleiner/gleich der Leasing-Dauer sein. Dies gilt nur, wenn die Wahl des Vorsitzenden aktiviert ist. Optional 10s
leaderElectResourceLock (Nicht in Konsole angezeigt) Der Typ des Ressourcenobjekts, der bei der Vorgesetztenwahl zum Sperren verwendet wird. Unterstützte Optionen sind leases (Standard), endpoints, endpointsleases, configmaps und configmapsleases. Optional leases
leaderElectRetryPeriod (Nicht in Konsole angezeigt) Die Dauer, die Kunden zwischen dem Erwerb und der Erneuerung einer Führung warten sollten. Dies gilt nur, wenn die Wahl des Vorsitzenden aktiviert ist. Optional 2s
maxAutoprovisionedNodeGroupCount (Nicht in Konsole angezeigt) Die maximale Anzahl von automatisch bereitgestellten Gruppen im Cluster. Optional 15
maxEmptyBulkDelete maxEmptyBulkDelete Maximale Anzahl leerer Knoten, die gleichzeitig gelöscht werden können. Optional 10
maxFailingTime (Nicht in Konsole angezeigt) Maximale Zeit seit der letzten erfolgreichen Autoscaler-Ausführung vor dem automatischen Neustart. Optional 15m
maxGracefulTerminationSec (Nicht in Konsole angezeigt) Maximale Anzahl von Sekunden, die CA auf Podbeendigung wartet, wenn versucht wird, einen Knoten horizontal zu skalieren. Optional 600
maxInactivity (Nicht in Konsole angezeigt) Maximale Zeit seit der letzten aufgezeichneten Autoscaler-Aktivität vor dem automatischen Neustart. Optional 10m
maxNodeProvisionTime maxNodeProvisionTime Maximale Zeit, die CA wartet, bis der Knoten bereitgestellt wird. Optional 15m
maxNodesTotal (Nicht in Konsole angezeigt) Maximale Anzahl Knoten in allen Knotenpools. Cluster-Autoscaler vergrößert das Cluster nicht über diese Anzahl hinaus. Optional 0
maxTotalUnreadyPercentage (Nicht in Konsole angezeigt) Maximaler Prozentsatz der nicht verfügbaren Knoten im Cluster. Nach der Überschreitung stoppt CA die Vorgänge. Optional 45
memoryTotal (Nicht in Konsole angezeigt) Mindest- und Höchstanzahl von Gigabyte Arbeitsspeicher im Cluster im Format <min>:<max>. Cluster-Autoscaler skaliert das Cluster nicht über diese Zahlen hinaus. Optional 0:6400000
minReplicaCount (Nicht in Konsole angezeigt) Mindestanzahl oder Replikate, die ein Replikatset oder Replikationscontroller zum Löschen ihrer Pods in horizontaler Skalierung zulassen muss. Optional 0
nodes Knoten

Eine Liste mit der Mindestanzahl an Knoten, der maximalen Anzahl an Knoten und der OCID des vom Cluster-Autoscaler zu verwaltenden Knotenpools.

Das Format lautet <min>:<max>:<node-pool1-ocid>, <min>:<max>:<node-pool2-ocid>.

Verwenden Sie entweder nodes oder nodeGroupAutoDiscovery, nicht jedoch beides.

JSON-Format im Klartext oder Base64-codiert.

Erforderlich, wenn nodeGroupAutoDiscovery nicht festgelegt ist ""
nodeGroupAutoDiscovery (Nicht in Konsole angezeigt)

Eine Liste der Tagschlüssel/Wert-Paare, die Mindestanzahl der Knoten, die maximale Anzahl der Knoten und die OCID des Compartments, in dem der vom Cluster-Autoscaler zu verwaltende Knotenpool gespeichert ist.

Das Format lautet compartmentId:<compartment-ocid>,nodepoolTags:<tagKey1>=<tagValue1>&<tagKey2>=<tagValue2>,min:<min-nodes>,max:<max-nodes>

Verwenden Sie entweder nodeGroupAutoDiscovery oder nodes, nicht jedoch beides.

Unterstützt mit Cluster Autoscaler Version 1.30.3, Version 1.31.1 und Version 1.32.0 und höher.

JSON-Format im Klartext oder Base64-codiert.

Erforderlich, wenn nodes nicht festgelegt ist
okTotalUnreadyCount (Nicht in Konsole angezeigt) Anzahl der zulässigen nicht bereitgestellten Knoten, unabhängig von maxTotalUnreadyPercentage. Optional 3
recordDuplicatedEvents (Nicht in Konsole angezeigt) Aktivieren Sie den Autoscaler, um doppelte Ereignisse innerhalb eines 5-Minuten-Fensters zu drucken. Optional false
scaleDownCandidatesPoolMinCount (Nicht in Konsole angezeigt)

Mindestanzahl von Knoten, die als zusätzliche nicht leere Kandidaten für die horizontale Skalierung betrachtet werden, wenn einige Kandidaten aus der vorherigen Iteration nicht mehr gültig sind. Bei der Berechnung der Poolgröße für zusätzliche Kandidaten nehmen wir an.

max(#nodes * scale-down-candidates-pool-ratio,
              scale-down-candidates-pool-min-count)
Erforderlich 50
scaleDownCandidatesPoolRatio (Nicht in Konsole angezeigt) Ein Verhältnis von Knoten, die als zusätzliche nicht leere Kandidaten für die horizontale Skalierung betrachtet werden, wenn einige Kandidaten aus der vorherigen Iteration nicht mehr gültig sind. Ein geringerer Wert bedeutet eine bessere CA-Reaktionsfähigkeit, aber eine möglicherweise langsamere Skalierungslatenz. Ein höherer Wert kann die CA-Performance bei großen Clustern (Hunderte von Knoten) beeinträchtigen. Bei 1.0 wird diese Heuristik deaktiviert. CA nimmt alle Knoten als zusätzliche Kandidaten auf. Erforderlich 0.1
scaleDownDelayAfterAdd scaleDownDelayAfterAdd Wie lange nach der vertikalen Skalierung wird die Bewertung fortgesetzt. Erforderlich 10m
scaleDownDelayAfterDelete (Nicht in Konsole angezeigt) Wie lange nach dem Löschen des Knotens, bei dem die vertikale Auswertung fortgesetzt wird, wird standardmäßig das Scan-Intervall verwendet. Erforderlich 10s
scaleDownDelayAfterFailure (Nicht in Konsole angezeigt) Wie lange nach einem Ausfall der horizontalen Skalierung die Auswertung fortgesetzt wird. Erforderlich 3m
scaleDownEnabled scaleDownEnabled Sollte CA das Cluster vertikal skalieren. Optional true
scaleDownNonEmptyCandidatesCount (Nicht in Konsole angezeigt) Maximale Anzahl nicht leerer Knoten, die in einer Iteration als Kandidaten für eine horizontale Skalierung mit Drain betrachtet werden. Ein geringerer Wert bedeutet eine bessere CA-Reaktionsfähigkeit, aber eine möglicherweise langsamere Skalierungslatenz. Ein höherer Wert kann die CA-Performance bei großen Clustern (Hunderte von Knoten) beeinträchtigen. Setzen Sie diesen Wert auf einen nicht positiven Wert, um diesen heuristischen Wert zu deaktivieren. CA begrenzt nicht die Anzahl der Knoten, die er berücksichtigt. Erforderlich 30
scaleDownUnneededTime scaleDownUnneededTime Gibt an, wie lange ein Knoten nicht benötigt werden soll, bevor er für eine horizontale Skalierung geeignet ist. Erforderlich 10m
scaleDownUnreadyTime (Nicht in Konsole angezeigt) Gibt an, wie lange ein nicht bereitstehender Knoten nicht mehr benötigt werden soll, bevor er für eine horizontale Skalierung geeignet ist. Erforderlich 20m
scaleDownUtilizationThreshold (Nicht in Konsole angezeigt) Knotenauslastungsebene, definiert als Summe der angeforderten Ressourcen geteilt durch Kapazität, unter der ein Knoten für die horizontale Skalierung berücksichtigt werden kann. Erforderlich 0.5
scanInterval scanInterval Wie oft ein Cluster für die vertikale oder horizontale Skalierung neu bewertet wird. Optional 10s
skipNodesWithCustomControllerPods (Nicht in Konsole angezeigt) Wenn true verwendet wird, löscht der Cluster-Autoscaler nie Knoten mit Pods, deren Eigentümer benutzerdefinierte Controller sind. Optional true
skipNodesWithLocalStorage (Nicht in Konsole angezeigt) Bei true löscht der Cluster-Autoscaler niemals Knoten mit Pods mit lokalem Speicher, z.B. EmptyDir oder HostPath. Optional true
skipNodesWithSystemPods (Nicht in Konsole angezeigt) Wenn true verwendet wird, löscht der Cluster-Autoscaler keine Knoten mit Pods aus dem Kube-System (mit Ausnahme von DaemonSet- oder Mirror-Pods). Optional true
statusConfigMapName (Nicht in Konsole angezeigt) Der Name des Status ConfigMap, den die CA schreibt. Optional cluster-autoscaler-status
stderrthreshold (Nicht in Konsole angezeigt) Der Schwellenwert für den Logschweregrad, über den Logs an stderr gesendet werden. Beispiel: Wenn Sie diesen Wert auf error setzen, werden alle Logs mit einem höheren Schweregrad als error an stderr gesendet. Optional info
unremovableNodeRecheckTimeout unremovableNodeRecheckTimeout Der Timeout, bevor ein Knoten erneut geprüft wird, der zuvor nicht entfernt werden konnte. Erforderlich 5m
v (Nicht in Konsole angezeigt) Die Zahl für den Ausführlichkeitsgrad der Protokollierung. Optional 0
writeStatusConfigmap (Nicht in Konsole angezeigt) Muss CA Statusinformationen in eine configmap schreiben. Optional true