Überlegungen zur Skalierbarkeit für Azure Kubernetes Service-Umgebungen

Azure Kubernetes Service (AKS) kann in Abhängigkeit von den Anforderungen an die Infrastruktur (mehr oder weniger erforderliche Kapazität), dem Hinzufügen von Knotenpools mit speziellen Funktionen wie die GPU, oder den Anforderungen der Anwendung auf- und abskaliert werden. In diesem Fall gibt es mehrere Faktoren wie Anzahl und Rate der gleichzeitigen Verbindungen, Anzahl der Anforderungen, Back-End-Wartezeiten bei AKS-Anwendungen.

Die am häufigsten verwendeten Skalierbarkeitsoptionen für AKS sind die automatische Clusterskalierung und die automatische horizontale Skalierung von Pods. Die automatische Clusterskalierung passt die Anzahl von Knoten basierend auf den angeforderten Computeressourcen im Knotenpool an. Die automatische horizontale Skalierung von Pods passt die Anzahl von Pods in einer Bereitstellung je nach CPU-Nutzung oder anderen konfigurierten Metriken an.

Überlegungen zum Entwurf

Hier sind einige entscheidende Faktoren zu beachten:

  • Ist schnelle Skalierbarkeit eine Anforderung für Ihre Anwendung (keine Wartezeit)?

    • Für eine schnelle Bereitstellung von Pods verwenden Sie virtuelle Knoten, die nur mit Linux-Knoten bzw. -Pods unterstützt werden.
  • Ist die Workload nicht zeitkritisch und kann mit Unterbrechungen umgehen? Erwägen Sie die Verwendung von Spot VMs.

  • Kann die zugrundeliegende Infrastruktur (Netzwerk-Plug-In, IP-Bereiche, Abonnementgrenzwerte, Kontingente usw.) aufskaliert werden?

  • Erwägen Sie die Automatisierung der Skalierbarkeit.

    • Sie können die automatische Skalierung von Clustern aktivieren, um die Anzahl der Knoten zu skalieren. Erwägen Sie die automatische Clusterskalierung und die Skalierung auf null.
    • Die horizontale automatische Podskalierung skaliert die Anzahl der Pods automatisch.
  • Erwägen Sie die Skalierbarkeit mit mehreren Zonen und Knotenpools.

    • Erwägen Sie beim Erstellen von Knotenpools das Festlegen von Verfügbarkeitszonen mit AKS.
    • Erwägen Sie die Verwendung mehrerer Knotenpools, um Anwendungen mit unterschiedlichen Anforderungen zu unterstützen.
    • Skalieren Sie Knotenpools mit der automatischen Clusterskalierung.
    • Sie können die Benutzerknotenpools auf null skalieren. Weitere Informationen finden Sie unter den Einschränkungen.

Entwurfsempfehlungen

Im Folgenden finden Sie bewährte Methoden für Ihren Entwurf:

  • Verwenden Sie VM-Skalierungsgruppen (VMSS), die für Szenarios wie automatische Skalierung, Pools mit mehreren Knoten und der Unterstützung von Windows-Knotenpools erforderlich sind.
    • Aktivieren oder Bearbeiten Sie die VMSS-Skalierbarkeitseinstellungen nicht manuell im Azure-Portal oder mithilfe der Azure CLI. Verwenden Sie stattdessen die automatische Clusterskalierung.
  • Wenn Sie eine automatische Skalierung mit schnellem Burst benötigen, verwenden Sie den AKS-Cluster mithilfe von Azure Container Instances und virtuellen Knoten für eine schnelle und unbegrenzte Skalierbarkeit und sekundengenaue Abrechnung.
  • Verwenden Sie die automatische Clusterskalierung und die Skalierung auf null für eine vorhersagbare Skalierbarkeit mithilfe von VM-basierten Workerknoten.
  • Aktivieren Sie die automatische Clusterskalierung, um die Anforderungen der Anwendung zu erfüllen.
  • Aktivieren Sie die horizontale automatische Podskalierung (HPA), um die Spitzenzeiten der Anwendung zu verringern.
    • Für alle Ihre Container und Pods müssen Ressourcenanforderungen und -grenzwerte definiert sein.
    • HPA skaliert die Anzahl der Pods automatisch auf Basis der beobachteten Ressourcengrenzen für CPU/Arbeitsspeicher oder benutzerdefinierter Metriken.
  • Aktivieren Sie Azure Monitor für Container und die Liveüberwachung, um die Auslastung des Clusters und der Workload zu überwachen.
  • Verwenden Sie mehrere Knotenpools, wenn Ihre Anwendungen unterschiedliche Ressourcenanforderungen aufweisen.
  • Erwägen Sie Spot-VM-basierte Knotenpools für nicht zeitkritische Workloads, die mit Unterbrechungen und Entfernungen umgehen können.