Automatische Skalierung für Workerpools einrichten

Aktualisieren Sie die Konfigurationszuordnung (Configmap) für den Cluster-Autoscaler, um die automatische Skalierung von Workerknoten in Ihren Worker-Pools entsprechend den Minimal- und Maximalwerten, die Sie festlegen, zu aktivieren.

Nachdem Sie die ConfigMap bearbeitet haben, um die automatische Skalierung für einen Worker-Pool zu aktivieren, skaliert der Cluster-Autoscaler Ihren Cluster entsprechend Ihren Workload-Anforderungen. Dies bedeutet, dass Sie die Größe Ihrer Worker-Pools nicht ändern oder neu ausbalancieren können. Das Prüfen (Scannen) und Durchführen von Scale-up- und Scale-down-Operationen erfolgt in regelmäßigen Intervallen im Verlauf der Zeit und kann abhängig von der Anzahl der Workerknoten auch eine längere Zeit (z. B. 30 Minuten) dauern. Wenn Sie später den Cluster-Autoscaler entfernen wollen, müssen Sie jeden Worker-Pool in der Konfigurationszuordnung zuerst inaktivieren.

Ab der Version 1.2.4 wird die Option maxEmptyBulkDelete nicht mehr unterstützt. Entfernen Sie diese Option aus Ihrer configmap, indem Sie den Befehl kubectl edit configmap iks-ca-configmap -n kube-system ausführen und die Option löschen. Als Ersatz können Sie die Option maxScaleDownParallelism verwenden, die in der Version 1.2.4 hinzugefügt wurde. Weitere Informationen finden Sie in der Configmap-Referenz.

Vorbereitende Schritte

  1. Bearbeiten Sie die YAML-Datei, die die Konfigurationszuordnung (Configmap) für den Cluster-Autoscaler enthält.

    oc edit cm iks-ca-configmap -n kube-system -o yaml
    

    Beispielausgabe

    apiVersion: v1
    data:
      workerPoolsConfig.json: |
        [
         {"name": "<worker_pool>","minSize": 1,"maxSize": 2,"enabled":false}
        ]
    kind: ConfigMap
    
  2. Bearbeiten Sie die Konfigurationszuordnung mit den Parametern, um zu definieren, wie der Cluster-Autoscaler Ihren Worker-Pool skalieren soll. Hinweis: Wenn Sie nicht alle Lastausgleichsfunktionen für Anwendungen (ALBs) in allen Zonen Ihres Standardclusters inaktiviert haben, müssen Sie den Wert des Parameters minSize in 2 pro Zone ändern, damit die ALB-Pods für Hochverfügbarkeitszwecke verteilt werden können.

    • "name": "default": Ersetzen Sie "default" durch den Namen oder die ID des Worker-Pools, der skaliert werden soll. Führen Sie ibmcloud oc worker-pool ls --cluster CLUSTER_NAME_OR_ID aus, um Workerpools aufzulisten. Wenn Sie mehrere Worker-Pools verwalten möchten, kopieren Sie die JSON-Zeile wie folgt in durch Kommas getrennte Zeilen.
        [
        {"name": "default","minSize": 1,"maxSize": 2,"enabled":false},
        {"name": "Pool2","minSize": 2,"maxSize": 5,"enabled":true}
        ]
        ```
        Der Cluster-Autoscaler kann nur Worker-Pools skalieren, die die Bezeichnung (Label) `ibm-cloud.kubernetes.io/worker-pool-id` haben. Führen Sie `ibmcloud oc worker-pool get --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID | grep Labels` aus, um zu prüfen, ob Ihr Workerpool die erforderliche Bezeichnung hat. Wenn Ihr Worker-Pool nicht über das erforderliche Label verfügt, fügen Sie einen neuen Worker-Pool hinzu und verwenden Sie diesen Worker-Pool mit dem Cluster-Autoscaler.
        {: note}
    
    - `"minSize": 1`: Geben Sie die Mindestanzahl der Arbeitsknoten pro Zone an. Durch Festlegen von `minSize` wird nicht automatisch ein Scale-up ausgelöst. Der ist `minSize` ein Schwellenwert, der sicherstellt, dass der Cluster-Autoscaler nicht auf weniger als eine bestimmte Anzahl von Worker-Knoten pro Zone skaliert. Wenn für Ihren Cluster nicht diese Anzahl pro Zone festgelegt ist, führt der Cluster-Autoscaler ein Scale-up erst dann durch, wenn Anforderungen für Workerressourcen vorliegen, die zusätzliche Ressourcen erfordern. Beispiel: Wenn Sie einen Worker-Pool mit einem Workerknoten pro drei Zonen haben (insgesamt drei Workerknoten) und den Parameter `minSize` auf `4` pro Zone setzen, stellt der Cluster-Autoscaler nicht sofort drei zusätzliche Workerknoten pro Zone (insgesamt 12 Workerknoten) bereit. Stattdessen wird die Scale-up-Operation durch Ressourcenanforderungen ausgelöst. Wenn Sie eine Workload erstellen, die die Ressourcen von 15 Workerknoten anfordert, führt der Cluster-Autoscaler ein Scale-up für den Worker-Pool durch, damit diese Anforderung erfüllt werden kann. Das bedeutet `minSize` nun, dass der Cluster-Autoscaler nicht auf weniger als vier Worker-Knoten pro Zone herunterskaliert, selbst wenn Sie die Workload entfernen, die diese Anzahl anfordert. Weitere Informationen finden Sie in der [Dokumentation zu Kubernetes.](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#when-does-cluster-autoscaler-change-the-size-of-a-cluster){: external}
    
    - `"maxSize": 2`: Geben Sie die Anzahl der Workerknoten pro Zone an, die der Cluster-Autoscaler bei einem Scale-Up maximal im Worker-Pool verwenden soll. Der Wert muss größer oder gleich dem Wert sein, den Sie für den Parameter `minSize` festlegen.
    - `"enabled": false`: Legen Sie den Wert `true` fest, damit die Skalierung für den Worker-Pool über den Cluster-Autoscaler verwaltet werden kann. Setzen Sie den Parameter auf den Wert `false`, um die Skalierung des Worker-Pools durch den Cluster-Autoscaler zu inaktivieren. Wenn Sie später den [Cluster-Autoscaler entfernen](/docs/openshift?topic=openshift-cluster-scaling-install-addon&interface=ui#autoscaler-remove-console) wollen, müssen Sie jeden Worker-Pool in der Konfigurationszuordnung zuerst inaktivieren.
    
    
  3. Speichern Sie die Konfigurationsdatei.

  4. Rufen Sie Ihren Cluster-Autoscaler-Pod ab.

    oc get pods -n kube-system
    
  5. Prüfen Sie den Abschnitt Events des Cluster-Autoscaler-Pods auf ein Ereignis ConfigUpdated, um sich zu vergewissern, dass die Konfigurationszuordnung erfolgreich aktualisiert wurde. Die Ereignisnachricht für Ihre Konfigurationszuordnung hat das folgende Format: minSize:maxSize:PoolName:<SUCCESS|FAILED>:error message.

    oc describe pod -n kube-system <cluster_autoscaler_pod>
    

    Beispielausgabe

        Name:               ibm-iks-cluster-autoscaler-857c4d9d54-gwvc6
        Namespace:          kube-system
        ...
        Events:
        Type     Reason         Age   From                                        Message
        ----     ------         ----  ----                                        -------
        Normal  ConfigUpdated  3m    ibm-iks-cluster-autoscaler-857c4d9d54-gwvc6  {"1:3:default":"SUCCESS:"}
    

Wenn Sie einen Workerpool für die automatische Skalierung aktivieren und diesem Workerpool später eine Zone hinzufügen, starten Sie den Cluster-Autoscaler-Pod erneut, damit diese Änderung übernommen wird: oc delete pod -n kube-system <cluster_autoscaler_pod>.

Konfigurationswerte für den Cluster-Autoscaler anpassen

Sie können die Einstellungen für den Cluster-Autoscaler anpassen, wie zum Beispiel die Zeit, die der Cluster-Autoscaler wartet, bevor er ein Scale-up oder Scale-down von Workerknoten durchführt.

  • Rufen Sie Ihren Red Hat OpenShift-Cluster auf.

  • Add-on aktivieren.

    Wenn Sie einen anderen Parameter der Konfigurationszuordnung als die Parameter minSize und maxSize des Worker-Pools ändern oder wenn Sie einen Worker-Pool inaktivieren, werden die Pods des Cluster-Autoscalers neu gestartet.

  1. Überprüfen Sie die Konfigurationszuordnung für Cluster-Autoscaler-Parameter.

  2. Laden Sie die Konfigurationszuordnung des Cluster-Autoscaler-Add-ons herunter und überprüfen Sie die Parameter.

    oc get cm iks-ca-configmap -n kube-system -o yaml > configmap.yaml
    
  3. Öffnen Sie die Datei configmap.yaml und aktualisieren Sie die Einstellungen, die Sie ändern möchten.

  4. Wenden Sie die Konfigurationszuordnung des Cluster-Autoscaler-Add-ons erneut an.

    oc apply -f configmap.yaml
    
  5. Stellen Sie sicher, dass die Pods erfolgreich erneut gestartet wurden.

    oc get pods -n kube-system | grep autoscaler
    

Konfigurationszuordnungsreferenz für Cluster-Autoscaler

balancingIgnoreLabel
Der Knotenbezeichnungsschlüssel, der beim Zonenausgleich ignoriert werden soll. Neben den festen Knotenbezeichnungen kann der Autoscaler beim Zonenausgleich weitere 5 Knotenbezeichnungen ignorieren. Beispiel: balancingIgnoreLabel1:label1, balancingIgnoreLabel2: custom-label2.
coresTotal
Die minimale und maximale Anzahl der Kerne im Cluster. Der Cluster-Autoscaler skaliert den Cluster nicht über diese Zahlen hinaus. Der Standardwert ist 0:320000.
enforceNodeGroupMinSize
Setzen Sie diesen Wert auf true, um den Worker-Pool bei Bedarf auf die konfigurierte Mindestgröße zu skalieren. Der Standardwert ist false.
expander
Wie der Cluster-Autoscaler bestimmt, welcher Worker-Pool skaliert werden soll, wenn mehrere Worker-Pools vorhanden sind. Der Standardwert ist random.
random: Wählt zufällig zwischen den Methoden most-pods und least-waste aus.
most-pods: Wählt den Worker-Pool aus, der bei einem Scale-up die meisten Pods planen kann. Verwenden Sie diese Methode, wenn Sie nodeSelector verwenden, um sicherzustellen, dass Pods auf bestimmten Workerknoten landen.
least-waste: Wählt den Worker-Pool aus, der nach dem Scale-up die geringste ungenutzte CPU-Kapazität aufweist. Wenn zwei Worker-Pools nach dem Scale-up dieselbe Menge CPU-Ressourcen verwenden, wird der Worker-Pool mit dem meisten ungenutzten Speicher ausgewählt.
expendablePodsPriorityCutoff
Pods mit Priorität unter der Grenze sind kostenaufwendig. Sie können ohne Berücksichtigung während des Scale-down entfernt werden und verursachen kein Scale-up. Pods, für die PodPriority auf null gesetzt ist, sind nicht erweiterbar. Der Standardwert ist -10.
ignoreDaemonSetsUtilization
Ignoriert Autoscaler DaemonSet Pods bei der Berechnung der Ressourcenauslastung für Scale-Down. Der Standardwert ist false.
imagePullPolicy
Wann sollte das Docker-Image abgerufen werden? Der Standardwert ist Always.
Always: Extrahiert das Image bei jedem Start des Pods.
IfNotPresent: Ruft das Bild nur ab, wenn es nicht bereits lokal vorhanden ist. \n - Never bild: Geht davon aus, dass das Bild lokal vorhanden ist und zieht das Bild nie.
kubeClientBurst
Erlaubter Burst für den Kubernetes Client. Der Standardwert ist 300.
kubeClientQPS
Der QPS-Wert für Kubernetes client. Gibt an, wie viele Abfragen akzeptiert werden, sobald der Block erschöpft ist Der Standardwert ist 5.0.
livenessProbeFailureThreshold
Die Anzahl der kubelet Wiederholungsversuche einer Liveness-Probe, nachdem der Pod gestartet wurde und die erste Liveness-Probe fehlgeschlagen ist. Nach Erreichung des Fehlerschwellenwerts wird für den Container ein Neustart durchgeführt und der Pod wird in Bezug auf die Bereitschaftsprüfung ggf. als Unready markiert. Der Standardwert ist 3.
livenessProbePeriodSeconds
Das Intervall in Sekunden, in dem die eine Lebendigkeitsprüfung durchführt kubelet. Der Standardwert ist 600.
livenessProbeTimeoutSeconds
Die Zeit in Sekunden, nach deren Ablauf die Liveness-Probe ein Timeout auslöst. Der Standardwert ist 10.
logLevel
Die Protokollebene für den Autoscaler Die Protokollierungsebenen sind info, debug, warning, error. Der Standardwert ist info.
maxBulkSoftTaintCount
Die maximale Anzahl von Worker-Knoten, die gleichzeitig PreferNoSchedule als tainted oder untainted markiert werden können. Diese Funktion kann durch die Angabe des Werts 0 inaktiviert werden. Der Standardwert ist 0.
maxBulkSoftTaintTime
Die maximale Zeitspanne, in der Worker-Knoten gleichzeitig PreferNoSchedule als tainted oder untainted markiert sein können. Der Standardwert ist 10m.
maxDrainParallelism
Maximale Anzahl der Knoten, die noch bereinigt werden müssen und parallel bereinigt und gelöscht werden können Der Standardwert ist 1.
maxEmptyBulkDelete
Wird nur in Versionen vor 1.2.4 unterstützt. Die maximale Anzahl von leeren Knoten, die vom Autoscaler gleichzeitig gelöscht werden können. Der Standardwert ist 10.
maxFailingTime
Die maximale Zeit in Minuten, die der Cluster-Autoscaler-Pod ohne abgeschlossene Aktion läuft, bevor der Pod automatisch neu gestartet wird. Der Standardwert ist 15m.
maxGracefulTerminationSec
Die maximale Anzahl Sekunden, die der Autoscaler auf die Beendigung eines Pods wartet, wenn er ein Scale-down für einen Knoten durchführt. Der Standardwert ist 600.
maxInactivity
Die maximale Zeit in Minuten, die der Cluster-Autoscaler-Pod ohne aufgezeichnete Aktivität läuft, bevor der Pod automatisch neu gestartet wird. Der Standardwert ist 10m.
maxNodeGroupBinpackingDuration
Maximale Zeit in Sekunden, die für die Simulation der Lagerplatzverpackung für jeden Arbeitspool aufgewendet wird. Der Standardwert ist 10s.
maxNodeProvisionTime
Die maximale Zeit in Minuten, die ein Worker-Knoten für den Start der Bereitstellung benötigen darf, bevor der Cluster-Autoscaler die Scale-up-Anforderung abbricht. Der Standardwert ist 120m.
maxNodeSkipevalTimeTrackerEnabled
Version 1.35 und höher: Ermöglicht zusätzliche Metriken für die Analyse des Scale-Down-Verhaltens von Cluster Autoscaler, wenn Knoten während der Evaluierung übersprungen werden. Der Standardwert ist false.
Wenn diese Funktion aktiviert ist, stellt der Cluster-Autoscaler die Metrik cluster_autoscaler_skipped_scale_events_count innerhalb des CA-Pods zur Überwachung von übersprungenen Scale-Down-Ereignissen zur Verfügung.
maxNodesPerScaleUp
Maximale Anzahl von Knoten, die in einem einzigen Scale-up hinzugefügt werden können. Dies dient ausschließlich zur Optimierung der Latenzzeit des Autoscaler-Algorithmus und sollte nicht als Ratenbegrenzung für Scale-up verwendet werden. Der Standardwert ist 1000.
maxPodEvictionTime
Maximale Zeit, die der Autoscaler versucht, einen Pod zu entfernen, bevor er gestoppt wird. Der Standardwert ist 2m.
maxRetryGap
Die maximale Zeit in Sekunden für einen erneuten Versuch nach einem fehlgeschlagenen Verbindungsversuch zur Service-API. Verwenden Sie diesen Parameter und den Parameter retryAttempts, um das Wiederholungsfenster für den Cluster-Autoscaler anzupassen. Der Standardwert ist 60.
parallelDrain
Setzen Sie diese Eigenschaft auf true, um die parallele Bereinigung von Knoten zuzulassen. Der Standardwert ist false.
Veraltet Die Einstellung parallelDrain (entspricht --parallel-drain) wird nur in den Cluster Autoscaler-Versionen 1.26- 1.31 unterstützt. Für die Versionen 1.32 und später verwenden Sie stattdessen --max-drain-parallelism und --max-scale-down-parallelism.
maxScaleDownParallelism
Maximale Anzahl von leeren und zu entleerenden Knoten, die parallel gelöscht werden können. Der Standardwert ist 10.
maxTotalUnreadyPercentage
Der maximale Prozentsatz der nicht bereiten Knoten im Cluster. Nachdem dieser Wert überschritten wurde, stoppt der Autoscaler Operationen. Der Standardwert ist 45.
memoryTotal
Minimale und maximale Speicherkapazität in Gigabyte für den Cluster. Der Cluster-Autoscaler skaliert den Cluster nicht über diese Zahlen hinaus. Der Standardwert ist 0:6400000.
minReplicaCount
Die Mindestanzahl von Replikaten, die ein replicaSet oder ein Replikationscontroller beim Scale Down löschen darf. Der Standardwert ist 0.
newPodScaleUpDelay
Pods, die neuer als dieser Wert in Sekunden sind, werden beim Scale-up nicht berücksichtigt. Kann für einzelne Pods über die Annotation cluster-autoscaler.kubernetes.io/pod-scale-up-delay erhöht werden. Der Standardwert ist 0s.
nodeDeleteDelayAfterTaint
Gibt an, wie lange (in Sekunden) gewartet werden soll, bevor ein Knoten nach einem Taint gelöscht wird. Der Standardwert ist 5s.
nodeDeletionBatcherInterval
Gibt an, wie lange (in Minuten) der Autoscaler Knoten zusammenstellen kann, um sie im Stapelbetrieb zu löschen. Der Standardwert ist 0m.
nodeRemovalLatencyTrackingEnabled
Version 1.35 und höher: Aktiviert Histogramm-Metriken in Bezug auf die Knoten-Skalierungslatenz. Diese Metriken geben Aufschluss darüber, wie lange Cluster Autoscaler braucht, um Knoten zu entfernen oder die Entfernung abzubrechen, wenn wieder Knoten benötigt werden. Der Standardwert ist false.
Wenn diese Funktion aktiviert ist, stellt der Cluster-Autoscaler die Metrik cluster_autoscaler_node_removal_latency_seconds_bucket prometheus histogram vom CA-Pod zur Überwachung des Scale-Down-Verhaltens zur Verfügung.
okTotalUnreadyCount
Die Anzahl der zulässigen nicht bereiten Knoten, unabhängig vom Wert für maxTotalUnreadyPercentage. Der Standardwert ist 3.
OSReservedCPUMili
Die Menge der reservierten CPU in MiliCPU. Der Standardwert ist 30.
OSReservedMemoryGi
Die Menge des reservierten Speichers in GiB. Der Standardwert ist 0.3.
parallelDrain
Setzen Sie diese Eigenschaft auf true, um die parallele Bereinigung von Knoten zuzulassen. Der Standardwert ist false.
prometheusScrape
Legen Sie true fest, um Prometheus-Metriken zu senden. Um das Senden von Metriken zu stoppen, legen Sie false fest.
resourcesLimitsCPU
Die maximale CPU-Leistung der Worker-Knoten, die der Pod ibm-iks-cluster-autoscaler beanspruchen kann. Der Standardwert ist 600m.
resourcesLimitsMemory
Die maximale Speichermenge des Worker-Knotens, die der Pod ibm-iks-cluster-autoscaler beanspruchen kann. Der Standardwert ist 600Mi.
resourcesRequestsCPU
Die Mindestmenge an CPU-Leistung der Worker-Knoten, mit der der Pod ibm-iks-cluster-autoscaler startet. Der Standardwert ist 200m.
resourcesRequestsMemory
Die Mindestmenge an Arbeitsknoten-Speicher, mit der der Pod ibm-iks-cluster-autoscaler startet. Der Standardwert ist 200Mi.
retryAttempts
Die maximale Anzahl von Wiederholungsversuchen nach einem fehlgeschlagenen Verbindungsversuch zur Service-API. Verwenden Sie diesen Parameter und den maxRetryGap Parameter, um das Wiederholungsfenster für den Cluster-Autoscaler anzupassen. | Der Standardwert lautet 64.
scaleDownCandidatesPoolMinCount
Die Mindestanzahl von Knoten, die als zusätzliche nicht leere Kandidaten für das Scale-down berücksichtigt werden, wenn einige Kandidaten aus früheren Iterationen nicht mehr gültig sind. Der Standardwert ist 50.
scaleDownCandidatesPoolRatio
Das Verhältnis der Knoten, die als zusätzliche nicht leere Kandidaten für das Scale-down betrachtet werden, wenn einige Kandidaten aus der vorherigen Iteration nicht mehr gültig sind. Der Standardwert ist 0.1.
scaleDownDelayAfterAdd
Die Zeitspanne nach einer Skalierung nach oben, nach der die Bewertung für eine Skalierung nach unten wieder aufgenommen wird. Der Standardwert ist 10m.

scaleDownDelayAfterDelete | Die Zeitspanne nach dem Löschen eines Knotens, nach der die Bewertung der Skalierung nach unten wieder aufgenommen wird. Der Standardwert entspricht dem Wert, scan-interval nämlich 1m.

scaleDownDelayAfterFailure
Die Zeit in Minuten, die der Autoscaler nach einem Fehler warten muss. Der Standardwert ist 3m.
scaleDownEnabled
Wenn false festgelegt ist, führt der Autoscaler kein Scale-down durch. Der Standardwert ist true.
scaleDownGPUUtilizationThreshold
Die Summe der GPU-Anforderungen aller auf dem Knoten laufenden Pods geteilt durch die zuweisbaren Ressourcen des Knotens. Wenn die Ressourcenanforderungen unter diesem Schwellenwert liegen, kann ein Knoten für eine Verkleinerung in Betracht gezogen werden. Bei der Berechnung der Auslastung werden nur GPU-Ressourcen berücksichtigt. CPU- und Speichernutzung werden ignoriert. Der Standardwert ist 0.5.
scaleDownNonEmptyCandidatesCount
Die maximale Anzahl der nicht leeren Knoten, die in einer Iteration als Kandidaten für eine Verkleinerung mit Abfluss in Betracht kommen. | Der Standardwert ist 30.
scaleDownUnneededTime
Die Zeitspanne in Minuten, die ein Worker-Knoten ungenutzt bleiben muss, bevor er heruntergefahren werden kann. Der Standardwert ist 10m.
scaleDownUnreadyEnabled
Wenn diese Option auf true gesetzt ist, werden nicht bereite Knoten für einen Scale-down geplant. Der Standardwert ist true.
scaleDownUnreadyTime
Die Zeit in Minuten, die der Autoscaler warten muss, bevor ein Knoten, der nicht bereit ist, für einen Scale-down in Betracht gezogen wird. Der Standardwert ist 20m.
scaleDownUtilizationThreshold
Der Schwellenwert für die Auslastung des Worker-Knotens. Liegt die Auslastung des Worker-Knotens unter dem Schwellenwert, gilt der Worker-Knoten als heruntergefahren. Die Auslastung eines Worker-Knotens wird berechnet als Summe der CPU- und Speicherressourcen, die von allen auf dem Worker-Knoten ausgeführten Pods angefordert werden, geteilt durch die Ressourcenkapazität des Worker-Knotens. | Der Standardwert beträgt 0.5.
scanInterval
Legt die Häufigkeit in Minuten fest, mit der der Cluster-Autoscaler auf Workloadauslastung prüft (scannt), die ein Scale-up oder Scale-down auslöst. Der Standardwert ist 1m.
skipNodesWithLocalStorage
Bei true werden Workerknoten, die Pods haben, die Daten im lokalen Speicher speichern, nicht durch ein Scale-down entfernt. Der Standardwert ist true.
skipNodesWithSystemPods
Bei true werden Workerknoten, die Pods in kube-system haben, nicht durch ein Scale-down entfernt. Setzen Sie den Wert nicht auf false, da ein Scale-down von Pods in kube-system zu unerwarteten Ergebnissen führen kann. Der Standardwert ist true.
unremovableNodeRecheckTimeout
Das Zeitlimit in Minuten, bevor der Autoscaler einen Knoten, der bei einem früheren Versuch nicht entfernt werden konnte, erneut überprüft. Der Standardwert ist 5m.
workerPoolsConfig.json
Die Worker-Pools, die Sie automatisch skalieren möchten, einschließlich ihrer minimalen und maximalen Anzahl von Worker-Knoten pro Zone im Format {"name": "<pool_name>","minSize": 1,"maxSize": 2,"enabled":false}.
POOL_NAME: Der Name oder die ID des Worker-Pools, für den die automatische Skalierung aktiviert bzw. inaktiviert werden soll. Führen Sie ibmcloud oc worker-pool ls --cluster CLUSTER_NAME_OR_ID aus, um verfügbare Workerpools aufzulisten.
maxSize: <number_of_workers>: Die maximale Anzahl an Worker-Knoten pro Zone, auf die der Cluster-Autoscaler skalieren kann. Der Wert muss gleich dem oder größer als der Wert sein, den Sie für die minSize: <number_of_workers>-Größe festlegen.
min=<number_of_workers>: Die Mindestanzahl an Worker-Knoten pro Zone, auf die der Cluster-Autoscaler herunterskalieren kann. Wenn Ihre ALB-Pods für hohe Verfügbarkeit verteilt werden sollen, müssen Sie den Wert auf mindestens 2 setzen. Wenn Sie alle öffentlichen ALBs in jeder Zone Ihres Standard-Clusters deaktiviert haben, können Sie den Wert auf setzen 0. Bedenken Sie, dass die Festlegung einer Mindestgröße (min) nicht automatisch ein Scale-up auslöst. Die Größe min stellt einen Schwellenwert dar, damit der Cluster-Autoscaler nicht auf weniger als diese Mindestanzahl an Worker-Knoten pro Zone skaliert. Wenn für Ihren Cluster diese Anzahl pro Zone noch nicht festgelegt ist, führt der Cluster-Autoscaler ein Scale-up erst dann durch, wenn Workload-Ressourcenanforderungen vorliegen, die weitere Ressourcen erfordern.
enabled=: Unter true kann der Cluster-Autoscaler Ihren Worker-Pool skalieren. Unter false skaliert der Cluster-Autoscaler den Worker-Pool nicht. Wenn Sie den Cluster-Autoscaler später entfernen möchten, müssen Sie zunächst jeden Worker-Pool in der ConfigMap deaktivieren. Wenn Sie einen Worker-Pool für die automatische Skalierung aktivieren und diesem Worker-Pool später eine Zone hinzufügen, starten Sie den Cluster-Autoscaler-Pod neu, damit er diese Änderung übernimmt: oc delete pod -n kube-system <cluster_autoscaler_pod>.
Der standardmäßige Worker-Pool (default) ist nicht aktiviert; er weist für max den Wert 2 und für min den Wert 1 auf.