Freigeben über


Verwenden des Profils der automatischen Skalierung zum Konfigurieren der automatischen Clusterkalierung in AKS, die von Azure Arc aktiviert ist

Gilt für: AKS in 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 Clusterautoskalierungsprofil wirkt sich auf alle Knotenpools aus, die die automatische Clusterskalierung verwenden. Sie können kein Autoskalierungsprofil pro Knotenpool festlegen. In diesem Artikel wird die Funktionsweise der automatischen Skalierung erläutert, die Standardwerte des Automatischskalierungsprofils und die Konfiguration und Verwendung einer Profildefinition erläutert.

Verwenden von Profilen

Clusterautoskalierungsprofile weisen die folgenden Attribute auf:

  • Autoskalierungsprofile gelten für alle Knotenpools in einem Cluster.
  • Profile sind globale Objekte auf Bereitstellungsebene.
  • In AKS Arc sind mehrere Profile 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 unten angegebenen 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, herunterskaliert werden kann. 0
max-node-count Die maximale Knotenanzahl, auf die der Knotenpool, dem dieses Profil zugewiesen ist, hochskaliert werden kann. 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 Gibt an, innerhalb welcher Zeitspanne nach einem Fehler beim Herunterskalieren die Bewertung für das Herunterskalieren wieder aufgenommen 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 Die Knotenauslastung, definiert als Summe der angeforderten Ressourcen geteilt durch die Kapazität, bei deren Unterschreitung ein Knoten für das Herunterskalieren in Betracht gezogen 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
Erweiterung 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 einer Festlegung auf TRUE werden bei der automatischen Clusterskalierung niemals Knoten gelöscht, die über Pods mit lokalem Speicher verfügen, z. B. „EmptyDir“ oder „HostPath“. true
skip-nodes-with-system-pods Bei einer Festlegung auf TRUE werden bei der automatischen Clusterskalierung niemals Knoten mit Pods aus „kube-system“ gelöscht (ausgenommen hiervon sind „DaemonSet“ oder Spiegel-Pods). true
max-empty-bulk-delete Maximale Anzahl leerer Knoten, die gleichzeitig gelöscht werden können. 10 Knoten
new-pod-scale-up-delay Für Szenarien wie die Burst-/Batchskalierung, bei denen die Zertifizierungsstelle nicht tätig werden soll, bevor der Kubernetes-Scheduler alle Pods planen konnte, können Sie wie folgt vorgehen: Weisen Sie die Zertifizierungsstelle an, nicht geplante Pods zu ignorieren, bis sie ein bestimmtes Alter erreicht haben. 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 Konfiguration der automatischen Skalierung

Sie können die Einstellungen im Clusterprofil für die automatische Skalierung 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 im Knotenpool einen Wert aufweist, der höher ist als die aktuelle Anzahl von Knoten, werden die neuen Minimal- oder Höchsteinstellungen berücksichtigt, wenn genügend nicht planbare 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. Ein Herunterskalierungsereignis tritt beispielsweise auf, nachdem Knoten 10 Minuten lang nicht ausgelastet waren. 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 aus einem Text-Editor bearbeiten und gespeicherte Definitionen laden.

Speichern der Profildefinition

Sie speichern eine Kopie des Profils als YAML-Datei mit kvactl. 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. Beispielsweise können Sie 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

Nächste Schritte