Verwenden des AutoScaler-Profils zum Konfigurieren der cluster automatischen Skalierung in AKS, die von Arc aktiviert sind
Gilt für: AKS auf Azure Stack HCI 22H2, AKS unter Windows Server
Sie können die Parameter im Autoscaler-Profilobjekt verwenden, um Skalierungsereignisse in AKS zu definieren, die von Arc aktiviert sind. Das Cluster-Autoscaler-Profil wirkt sich auf alle Knotenpools aus, die die Cluster-Autoskaler verwenden; Sie können ein AutoScaler-Profil pro Knotenpool nicht festlegen. In diesem Artikel wird erläutert, wie die Autoscaler funktioniert, die Standardprofilwerte für die Autoskalen-Skalierung beschrieben und beschrieben, wie Sie eine Profildefinition konfigurieren und verwenden.
Verwenden von Profilen
Cluster-Autoskalerprofile weisen die folgenden Attribute auf:
- Autoskalerprofile gelten für alle Knotenpools in einem Cluster.
- Profile sind globale Objekte auf Bereitstellungsebene.
- Mehrere Profile sind in AKS Arc verfügbar.
- Einem bestimmten Cluster wird nur ein Profil zugewiesen. Das Profil wird für alle Knotenpools im Cluster verwendet.
- Änderungen am Profil werden auf alle Knotenpools angewendet, für die die AutoScaler-Funktion aktiviert ist.
Profileinstellungen
Das Standardprofil besteht aus den folgenden Standardwerten. Sie können die folgenden Einstellungen aktualisieren.
Einstellung | Beschreibung | Standardwert |
---|---|---|
min-node-count |
Die Minimale Knotenanzahl, auf die der Knotenpool, dem dieses Profil zugewiesen ist, kann nach unten skaliert werden. | 0 |
max-node-count |
Die maximale Knotenanzahl, auf die der Knotenpool, dem dieses Profil zugewiesen ist, kann bis zu skaliert werden. | 1 |
scan-interval |
Die Häufigkeit der Neubewertung des Clusters in Bezug auf das Hoch- oder Herunterskalieren. | 10 Sekunden |
scale-down-delay-after-add |
Gibt an, innerhalb welcher Zeitspanne nach dem Hochskalieren die Bewertung für das Herunterskalieren wieder aufgenommen wird. | 10 Minuten |
scale-down-delay-after-delete |
Gibt an, innerhalb welcher Zeitspanne nach dem Löschen eines Knotens die Bewertung für das Herunterskalieren wieder aufgenommen wird. | scan-interval |
scale-down-delay-after-failure |
Wie lange nach einem Scale down-Fehler, der die Auswertung herunterskalieren, fortgesetzt wird. | 3 Minuten |
scale-down-unneeded-time |
Gibt an, wie lange ein Knoten nicht benötigt werden sollte, bevor er für ein Herunterskalieren in Frage kommt. | 10 Minuten |
scale-down-unready-time |
Gibt an, wie lange ein nicht Knoten mit dem Status „Nicht bereit“ nicht benötigt werden sollte, bevor er für ein Herunterskalieren in Frage kommt. | 20 Minuten |
scale-down-utilization-threshold |
Knotenauslastungsebene, definiert als die Summe der angeforderten Ressourcen dividiert durch Kapazität, unter der ein Knoten für die Skalierung nach unten betrachtet werden kann. | 0.5 |
max-graceful-termination-sec |
Maximale Anzahl von Sekunden, die die Clusterautoskalierung beim Versuch, einen Knoten herunterzuskalieren, auf die Beendigung des Pods wartet | 600 Sekunden |
balance-similar-node-groups |
Erkennt ähnliche Knotenpools und gleicht die Anzahl der Knoten zwischen ihnen aus. | false |
expander |
Der Typ der Knotenpoolerweiterung, die bei der zentralen Hochskalierung zu verwenden ist. Mögliche Werte: most-pods , random , least-waste , priority . |
random |
skip-nodes-with-local-storage |
Bei "true" löscht die Automatische Cluster-Skalierung niemals Knoten mit Pods mit lokalem Speicher, z. B. EmptyDir oder HostPath. | true |
skip-nodes-with-system-pods |
Bei "true" löscht die Automatische Clusterskala niemals Knoten mit Pods aus kube-system (mit Ausnahme von DaemonSet oder Spiegel pods). |
true |
max-empty-bulk-delete |
Maximale Anzahl leerer Knoten, die gleichzeitig gelöscht werden können. | 10 |
new-pod-scale-up-delay |
Für Szenarien wie die Burst-/Batch-Skalierung, in denen die Zertifizierungsstelle nicht handeln soll, bevor der Kubernetes-Scheduler alle Pods planen kann, können Sie der Zertifizierungsstelle mitteilen, dass ungeplante Pods ignoriert werden, bevor sie ein bestimmtes Alter sind. | 0 Sekunden |
max-total-unready-percentage |
Maximaler Prozentsatz der nicht fertigen Knoten im Cluster. Wenn dieser Prozentsatz überschritten wird, hält die Zertifizierungsstelle alle Vorgänge an. | 45 % |
max-node-provision-time |
Maximaler Zeitraum, den die Autoskalierung auf die Bereitstellung eines Knotens wartet. | 15 Minuten |
Hinweise zur AutoScaler-Konfiguration
Sie können Einstellungen im Cluster-Autoscaler-Profil mithilfe des PowerShell-Cmdlets "Set-AksHciAutoScalerConfig " ändern.
Die automatische Clusterskalierung trifft Skalierungsentscheidungen auf Basis der für die einzelnen Knotenpools festgelegten Mindest- und Höchstzahlen, erzwingt sie jedoch nicht, nachdem die Mindest- und Höchstzahlen aktualisiert wurden. Wenn Sie beispielsweise eine Mindestanzahl von 5 festlegen, wenn die aktuelle Knotenanzahl 3 ist, wird der Pool nicht sofort auf 5 skaliert.
Wenn die Mindestanzahl des Knotenpools einen Wert über der aktuellen Anzahl von Knoten aufweist, werden die neuen Mindest- oder Höchsteinstellungen berücksichtigt, wenn genügend nicht geplante Pods vorhanden sind, die zwei neue zusätzliche Knoten erfordern und ein Autoscaler-Ereignis auslösen. Nach dem Skalierungsereignis werden die neuen Anzahlgrenzwerte berücksichtigt.
Sie können auch differenziertere Details der Clusterautoskalierung konfigurieren, indem Sie die Standardwerte im clusterweiten Autoskalierungsprofil ändern. Beispielsweise tritt ein Scale down-Ereignis auf, nachdem Knoten 10 Minuten lang nicht verwendet wurden. Wenn Sie Workloads haben, die alle 15 Minuten ausgeführt werden, möchten Sie vielleicht das Autoskalierungsprofil so ändern, dass es nach 15 oder 20 Minuten nicht ausgelastete Knoten herunterskaliert. Wenn Sie die Clusterautoskalierung aktivieren, wird ein Standardprofil verwendet, sofern Sie keine anderen Einstellungen angeben.
Speichern und Laden des Autoskalierungsprofils
Sie können Ihr Autoscaler-Profil in einer Profildefinition als YAML-Datei speichern und speichern. Sie können die YAML-Datei manuell in einem Text-Editor bearbeiten und gespeicherte Definitionen laden.
Speichern der Profildefinition
Sie speichern eine Kopie des Profils als YAML-Datei mithilfe kvactl
von . Nachdem Sie Ihr Profil definiert haben, führen Sie die folgenden Befehle aus:
kvactl.exe autoscalerprofile get --name default --kubeconfig (Get-AksHciConfig).Kva.kubeconfig --outputformat=yaml > def.yaml
Bearbeiten der Profildefinition
Sie können die Profildefinition in der YAML-Datei bearbeiten. Sie können z. B. def.yaml in Editor, Visual Studio Code oder anderen Texteditoren öffnen.
Laden der Profildefinition
Sie können die Profildefinition mithilfe kvactl
der gespeicherten YAML-Datei laden. Führen Sie den folgenden Befehl aus:
kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig