Cluster Autoscaler

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

Allgemeine Konfigurationsargumente für die meisten Cluster-Add-ons
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.

Nicht verwendet von:
  • Nvidia-GPU-Operator
Mögliche Äquivalente:
  • Knotenfeature Discovery, verwenden Sie master.affinity
  • NVIDIA Network Operator, verwenden Sie operator.affinity
  • CSI-Treiber SMB, verwenden Sie contoller.affinity
  • AMD-GPU-Operator, controllerManager.affinity verwenden
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.

Nicht verwendet von:
  • NVIDIA-GPU-Operator
  • CSI-Treiber SMB
Mögliche Äquivalente:
  • Knotenfeature Discovery, verwenden Sie worker.nodeSelector
  • NVIDIA Network Operator, verwenden Sie operator.nodeSelectors
  • AMD GPU-Operator, verwenden Sie selector oder controllerManager.nodeSelector
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.
Nicht verwendet von:
  • AMD-GPU-Plug-in
  • NVIDIA-GPU-Operator
  • NVIDIA-Netzwerkbetreiber
  • CSI-Treiber SMB
Mögliche Äquivalente:
  • CoreDNS, verwenden Sie nodesPerReplica
  • Knotenfeature Discovery, verwenden Sie master.replicaCount
  • AMD-GPU-Operator, controllerManager.replicas verwenden
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.

Nicht verwendet von:
  • Knotenfeature-Discovery
  • NVIDIA-Netzwerkbetreiber
  • CSI-Treiber SMB
Mögliche Äquivalente:
  • NVIDIA-GPU-Operator, daemonsets.rollingUpdate.maxUnavailable verwenden
  • AMD-GPU-Operator, verwenden upgradePolicy in devicePlugin, metricsExporter, testRunner, configManager oder draDriver
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.

Mögliche Äquivalente:
  • Knotenfeature Discovery, verwenden Sie master.tolerations und/oder worker.tolerations
  • NVIDIA-GPU-Operator, daemonsets.tolerations verwenden
  • NVIDIA Network Operator, verwenden Sie operator.tolerations
  • CSI-Treiber SMB, verwenden Sie controller.tolerations
  • AMD GPU-Operator, Toleranzen in devicePlugin, metricsExporter, testRunner, configManager, draDriver oder controllerManager verwenden
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.

Nicht verwendet von:
  • Knotenfeature-Discovery
  • NVIDIA-GPU-Operator
  • NVIDIA-Netzwerkbetreiber
  • CSI-Treiber SMB
  • AMD-GPU-Operator
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.

Beachten Sie, dass die Knotenpooltags minSize und maxSize immer Vorrang vor min:{{<min-nodes>}} bzw. max:{{<max-nodes>}} haben.

Unterstützt mit Cluster Autoscaler Version 1.30.3, Version 1.31.1, 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
Große Cluster – Überlegungen

In der folgenden Tabelle werden die Aspekte beim Konfigurieren dieses Cluster-Add-ons in großen Clustern beschrieben.

Argumentname Rollen, Anzahl Knoten Beschreibung Bei zunehmender Clustergröße Risiken Empfehlung
cluster-autoscaler.ContainerResources J

Definiert CPU- und Speicheranforderungen und -limits für den Cluster Autoscaler-Pod.

Bei zunehmender Clustergröße erlebt Cluster Autoscaler Folgendes:

  • Deutliches Wachstum bei der Cluster-Status-Bewertung für Knoten und Pods
  • Mehr Planungssimulationen
  • Höhere CPU- und Arbeitsspeicherauslastung
  • Höhere Entscheidungslatenz für vertikale und horizontale Skalierungsvorgänge

Wenn die Ressourcen zu klein sind:

  • Der Cluster Autoscaler-Pod wird möglicherweise beendet, da er den Speichergrenzwert überschreitet.
  • Skalierungsentscheidungen können verzögert werden, sodass Pods den Status Pending aufweisen.
  • Cluster-Scanzyklen können sich verlangsamen und die Reaktionsfähigkeit verringern.
  • Ein Rückstand von nicht planbaren Pods könnte sich ansammeln.

Erhöhen Sie je nach Bedarf die CPU- und Speicherressourcen:

  • Erhöhen Sie den Speicher, um den Status eines großen Clusters zu verarbeiten.
  • Erhöhen Sie die CPU, um Planungssimulationen durchzuführen und schneller Skalierungsentscheidungen zu treffen.
balanceSimilarNodeGroups N

Steuert, ob Cluster Autoscaler Knoten über ähnliche Knotenpools verteilt.

Große Cluster verwenden in der Regel mehrere Knotenpools, was die Möglichkeit einer ungleichmäßigen Skalierung über Pools hinweg erhöht.

Durch die Aktivierung dieses Arguments wird der Rechenaufwand erhöht und die Komplexität der Skalierungsentscheidungen leicht erhöht.

Wenn dieses Argument deaktiviert ist:

  • Knoten können ungleichmäßig über ähnliche Knotenpools verteilt sein.
  • Bestimmte Knotenpools können zu Hotspots werden.
  • Fehlertoleranz kann reduziert werden.

Aktivieren Sie dieses Argument für Umgebungen mit mehreren Knotenpools und für Hochverfügbarkeitsszenarios, die eine ausgewogene Skalierung erfordern.

numOfReplicas N

Steuert die Anzahl der Cluster Autoscaler-Pods.

Cluster Autoscaler verwendet Leader-Wahlen. Nur eine aktive Instanz trifft Skalierungsentscheidungen, während andere Replikate High Availability bieten.

Wenn die Anzahl zu niedrig ist, kann ein Knotenfehler, Podabsturz oder Upgrade die Autoscaling-Entscheidungen vorübergehend stoppen. Dadurch kann die Skalierung von Knoten für ausstehende Workloads verzögert werden, und die Skalierung von Knoten mit geringer Auslastung kann verzögert werden, bis Cluster Autoscaler wieder verfügbar ist.

Verwenden Sie zwei oder drei Replikate, um High Availability bereitzustellen.

affinity / nodeSelectors / tolerations N

Cluster Autoscaler ist eine kritische Control-Plane-Komponente.

Die Pod-Platzierung beeinflusst die Stabilität und Zuverlässigkeit von Cluster Autoscaler.

Wenn diese Argumente nicht richtig konfiguriert sind:

  • Cluster Autoscaler kann auf instabilen Knoten ausgeführt werden.
  • Cluster Autoscaler kann auf ressourcenbeschränkten Knoten ausgeführt werden.
  • Pods können neu gestartet werden.
  • Die Leistung könnte reduziert werden.
  • Führen Sie Cluster Autoscaler auf dedizierten System- oder Infrastrukturknoten mit ausreichenden Ressourcen aus.
  • Konfigurieren Sie Toleranzen, wenn die Zielsystemknoten verfälscht sind.
authType N

Definiert, wie Cluster Autoscaler mit OCI-APIs authentifiziert wird.

Cluster Autoscaler nutzt OCI-APIs, um Knoten während Scale-out-Vorgängen zu erstellen und Knoten während Scale-in-Vorgängen zu löschen.

  • Authentifizierungsfehler verhindern Skalierungsvorgänge.
  • API-Latenz oder Fehler können das Knoten-Provisioning verzögern.
  • Verwenden Sie einen zuverlässigen Authentifizierungsmechanismus. Instanz-Principals werden bevorzugt.
  • Stellen Sie sicher, dass die erforderlichen Berechtigungen und Servicelimits konfiguriert sind.
rollingUpdate N

Steuert die Deployment-Aktualisierungsstrategie für Cluster Autoscaler.

Die Ausfallzeit von Cluster Autoscaler stoppt die Skalierung von Entscheidungen und reduziert die Cluster-Reaktionsfähigkeit während eines Upgrades.

Wenn dieses Argument nicht richtig konfiguriert ist:

  • Alle Replikationen können gleichzeitig neu gestartet werden.
  • Die Skalierungsfunktion ist möglicherweise vorübergehend nicht verfügbar.
  • Konfigurieren Sie maxUnavailable sorgfältig.
  • Stellen Sie sicher, dass mindestens eine Cluster Autoscaler-Instanz während eines Updates aktiv bleibt.
maxNodesTotal J

Definiert die maximale Anzahl von Knoten, die Cluster Autoscaler verwalten kann.

Dieses Argument legt eine harte Obergrenze für die Clustergröße fest und verhindert ein unkontrolliertes Scale-out.

Wenn der Wert zu niedrig ist, stoppt Cluster Autoscaler die Skalierung, selbst wenn die Pods den Status Pending aufweisen.

Wenn der Wert zu hoch ist:

  • Das Cluster kann OCI-Mandanten- oder Servicelimits erreichen.
  • Die Kosten könnten unerwartet steigen.

Legen Sie den Wert etwas höher als die erwartete maximale Clustergröße fest. Beispiel: Legen Sie einen höheren Wert als 20000 fest, wenn ein Cluster voraussichtlich bis zu 20.000 Knoten enthalten soll.

coresTotal J

Definiert die minimale und maximale Gesamtanzahl von CPU-Cores im gesamten Cluster.

Dieses Argument steuert die aggregierte Skalierung der CPU-Kapazität und trägt dazu bei, ein unzureichendes Provisioning oder Überprovisioning zu verhindern.

Wenn der Höchstwert zu niedrig ist, blockiert Cluster Autoscaler Scale-up-Vorgänge.

Wenn der Höchstwert zu hoch ist, kann eine übermäßige Knotenbereitstellung die Kosten erhöhen.

Legen Sie coresTotal basierend auf der geplanten maximalen CPU-Kapazität und den Cloud-Ressourcenquotas Ihrer Organisation fest. Stellen Sie sicher, dass coresTotal hoch genug ist, um Spitzen-Workloads zu unterstützen.

memoryTotal J

Definiert den minimalen und maximalen Gesamtspeicher im gesamten Cluster.

Dieses Argument steuert das gesamte Cluster-Speicher-Provisioning und ist besonders wichtig für speicherintensive Workloads.

Wenn der Höchstwert zu niedrig ist, verhindert Cluster Autoscaler Scale-up-Vorgänge, die Workloads ohne ausreichenden Speicher belassen können.

Wenn der Höchstwert zu hoch ist, kann das Cluster überprovisioniert werden, und die Kosten können steigen.

Richten Sie die Mindest- und Höchstwerte an der Strategie für die Knotenpoolgröße aus.

maxEmptyBulkDelete J

Definiert die maximale Anzahl leerer Knoten, die gleichzeitig gelöscht werden können.

Dieses Argument steuert die Geschwindigkeit von horizontalen Skalierungsvorgängen.

Wenn der Wert zu niedrig ist:

  • Scale-down-Vorgänge können langsam sein.
  • Inaktive Ressourcen bleiben möglicherweise länger im Cluster.

Wenn der Wert zu hoch ist, kann eine große Anzahl von Knoten gleichzeitig gelöscht werden.

  • Erhöhen Sie den Wert für große Cluster moderat.
  • Vermeiden Sie aggressive Massenlöschungen.
nodes J

Definiert die minimale und maximale Anzahl von Knoten für jeden Knotenpool.

Dieses Argument steuert die Skalierungsgrenzen für jeden Knotenpool.

Wenn die Grenzen zu restriktiv sind, kann der Knotenpool nicht ausreichend skaliert werden.

Wenn die Grenzen zu zulässig sind, können Knoten ungleichmäßig über Knotenpools verteilt werden.

  • Konfigurieren Sie die Grenzen für jeden Knotenpool basierend auf Workload-Typ und Availability-Domain.
  • Richten Sie die Werte an der Einstellung balanceSimilarNodeGroups aus.