AKS-Skalierbarkeit auf UnternehmensebeneAKS enterprise-scale scalability

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.AKS can be scaled-in and out depending upon infrastructure needs (requiring more or less capacity), adding node pools with special capabilities like GPU, or application needs, in this case you have several factors like number and rate of concurrent connections, number of requests, back-end latencies on AKS applications.

Die häufigsten Skalierungsoptionen für AKS sind die automatische Clusterskalierung (automatisches Hinzufügen/Entfernen von Knoten basierend auf CPU- und Arbeitsspeicherauslastung) oder die HPA (horizontale automatische Podskalierung) für Ihre Anwendungen zum Auf- und Abskalieren basierend auf CPU- und Arbeitsspeicherauslastung sowie weiteren erweiterten Metriken.The most common scalability options for AKS are the cluster autoscaler (automatically adding/removing nodes based on CPU and memory utilization) or the HPA (horizontal pod autoscaler) for your applications to scale in and out based on CPU and memory utilization as well as more advanced metrics.

Überlegungen zum EntwurfDesign considerations

Hier sind einige entscheidende Faktoren zu beachten:Here are some crucial factors to consider:

  • Ist schnelle Skalierbarkeit eine Anforderung für Ihre Anwendung (keine Wartezeit)?Is rapid scalability a requirement for your application (no-time-to-wait)?

    • Für eine schnelle Bereitstellung von Pods verwenden Sie virtuelle Knoten, die nur mit Linux-Knoten bzw. -Pods unterstützt werden.To have a quick provisioning of pods use virtual nodes, they are only supported with Linux nodes/pods.
  • Ist die Workload nicht zeitkritisch und kann mit Unterbrechungen umgehen?Is the workload non-time sensitive and can handle interruptions? Erwägen Sie die Verwendung von Spot VMs.Consider the use of Spot VMs

  • Kann die zugrundeliegende Infrastruktur (Netzwerk-Plug-In, IP-Bereiche, Abonnementgrenzwerte, Kontingente usw.) aufskaliert werden?Is the underlying infrastructure (network plug-in, IP ranges, subscription limits, quotas, and so on) capable to scale out?

  • Erwägen Sie die Automatisierung der Skalierbarkeit.Consider to automate scalability

    • Sie können die automatische Skalierung von Clustern aktivieren, um die Anzahl der Knoten zu skalieren.You can enable cluster autoscaling to scale the number of nodes. Erwägen Sie die automatische Clusterskalierung und die Skalierung auf null.Consider cluster autoscaling and scale-to-zero
    • Die horizontale automatische Podskalierung skaliert die Anzahl der Pods automatisch.Horizontal pod autoscaler automatically scales the number of pods.
  • Erwägen Sie die Skalierbarkeit mit mehreren Zonen und Knotenpools.Consider scalability with multizone and node pools

    • Erwägen Sie beim Erstellen von Knotenpools das Festlegen von Verfügbarkeitszonen mit AKS.When creating node pools consider to set Availability Zones with AKS.
    • Erwägen Sie die Verwendung mehrerer Knotenpools, um Anwendungen mit unterschiedlichen Anforderungen zu unterstützen.Consider to use multiple node pools to support applications with different requirements.
    • Skalieren Sie Knotenpools mit der automatischen Clusterskalierung.Scale node pools with cluster autoscaler.
    • Sie können die Benutzerknotenpools auf null skalieren.You can scale to zero the user node pools. Weitere Informationen finden Sie unter den Einschränkungen.See the limitations.

EntwurfsempfehlungenDesign recommendations

Im Folgenden finden Sie bewährte Methoden für Ihren Entwurf:Follow these best practices for your design:

  • Verwenden Sie VM-Skalierungsgruppen, die für Szenarien wie automatische Skalierung, Pools mit mehreren Knoten und der Unterstützung von Windows-Knotenpools erforderlich sind.Use virtual machine scale sets, which are required for scenarios including autoscaling, multiple node pools, and Windows node pool support.
    • Aktivieren oder bearbeiten Sie die Einstellungen für die Skalierbarkeit nicht manuell im Azure-Portal oder mithilfe der Azure CLI.Don't manually enable or edit settings for scalability in the Azure portal or using the Azure CLI.
  • 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.If you need fast burst autoscaling choose to burst from AKS cluster using Azure Container Instances and virtual nodes for rapid and infinite scalability and per-second billing.
  • Verwenden Sie die automatische Clusterskalierung und die Skalierung auf null für eine vorhersagbare Skalierbarkeit mithilfe von VM-basierten Workerknoten.Use cluster autoscaler and scale-to-zero for predictable scalability using VM-based worker nodes.
  • Aktivieren Sie die automatische Clusterskalierung, um die Anforderungen der Anwendung zu erfüllen.Enable cluster autoscaler to meet application demands.
  • Aktivieren Sie die horizontale automatische Podskalierung (HPA), um die Spitzenzeiten der Anwendung zu verringern.Enable horizontal pod autoscaler (HPA) to mitigate the busy hours of your application.
    • Für alle Ihre Container und Pods müssen Ressourcenanforderungen und -grenzwerte definiert sein.All your containers and pods must have resource requests and limits defined.
    • HPA skaliert die Anzahl der Pods automatisch auf Basis der beobachteten Ressourcengrenzen für CPU/Arbeitsspeicher oder benutzerdefinierter Metriken.HPA automatically scales the number of pods based on observed resource limits CPU/memory or custom metrics.
  • Aktivieren Sie Azure Monitor für Container und die Liveüberwachung, um die Auslastung des Clusters und der Workload zu überwachen.Enable Azure Monitor for containers and live monitoring to monitor the cluster and workload utilization.
  • Verwenden Sie mehrere Knotenpools, wenn Ihre Anwendungen unterschiedliche Ressourcenanforderungen aufweisen.Use multiple node pools when your applications have different resource requirements.
  • Erwägen Sie Spot-VM-basierte Knotenpools für nicht zeitkritische Workloads, die mit Unterbrechungen und Entfernungen umgehen können.Consider Spot VM-based node pools for non-time-sensitive workloads that can handle interruptions and evictions.