Häufig gestellte Fragen zum Ausführen oder Skalieren großer AKS-Cluster

In diesem Artikel werden häufig gestellte Fragen zu häufigen Problemen beantwortet, die beim Ausführen oder Skalieren großer Cluster in Microsoft Azure Kubernetes Service (AKS) auftreten können. Ein großer Cluster ist ein beliebiger Cluster, der mit mehr als 500 Knoten ausgeführt wird.

Beim Erstellen, Hochskalieren oder Upgrade wird der Fehler "Kontingent überschritten" angezeigt.

Um dieses Problem zu beheben, erstellen Sie eine Supportanfrage in dem Abonnement, in dem Sie versuchen, zu erstellen, zu skalieren oder zu aktualisieren, und fordern Sie ein Kontingent für den entsprechenden Ressourcentyp an. Weitere Informationen finden Sie unter Regionale Computekontingente.

Ich erhalte den Fehler "insufficientSubnetSize", wenn ich einen AKS-Cluster bereit stelle, der erweiterte Netzwerke verwendet.

Dieser Fehler weist darauf hin, dass ein Subnetz, das für einen Cluster verwendet wird, keine IP-Adressen mehr in seinem CIDR für eine erfolgreiche Ressourcenzuweisung enthält. Dieses Problem kann bei Upgrades, horizontalen Skalierungen oder beim Erstellen eines Knotenpools auftreten. Dieses Problem tritt auf, weil die Anzahl der freien IP-Adressen im Subnetz kleiner ist als das Ergebnis der folgenden Formel:

Anzahl der angeforderten Knoten * Knotenpoolwert --max-pod

Voraussetzungen

  • Um mehr als 400 Knoten zu skalieren, müssen Sie das Azure CNI-Netzwerk-Plug-In verwenden.

  • Informationen zur Planung Ihres virtuellen Netzwerks und Ihrer Subnetze für die Anzahl der knoten und pods, die Sie bereitstellen, finden Sie unter Planen von IP-Adressen für Ihren Cluster. Informationen zum Reduzieren des Aufwands bei der Planung von Subnetzen oder der Neuerstellung des Clusters, den Sie aufgrund der IP-Auslastung durchführen würden, finden Sie unter Dynamische IP-Zuweisung.

Lösung

Da Sie den CIDR-Bereich eines vorhandenen Subnetzes nicht aktualisieren können, müssen Sie über die Berechtigung zum Erstellen eines neuen Subnetzes verfügen, um dieses Problem zu beheben. Gehen Sie folgendermaßen vor:

  1. Erstellen Sie ein neues Subnetz neu, das über einen größeren CIDR-Bereich verfügt, der für Vorgangsziele ausreicht.

  2. Create ein neues Subnetz mit einem neuen nicht überlappenden Bereich.

  3. Create einen neuen Knotenpool im neuen Subnetz.

  4. Entladen Sie Pods aus dem alten Knotenpool, der sich im alten Subnetz befindet, das ersetzt wird.

  5. Löschen Sie das alte Subnetz und den alten Knotenpool.

Ich habe sporadische Verbindungsfehler aufgrund der SNAT-Portauslastung.

Für Cluster, die in relativ großem Umfang ausgeführt werden (mehr als 500 Knoten), empfiehlt es sich, das NAT-Gateway (Managed Network Address Translation, Verwaltete Netzwerkadressenübersetzung) von AKS zu verwenden, um eine größere Skalierbarkeit zu erzielen. Azure NAT Gateway ermöglicht bis zu 64.512 ausgehende UDP- und TCP-Datenverkehrsflüsse pro IP-Adresse und maximal 16 IP-Adressen.

Wenn Sie keine verwaltete NAT verwenden, lesen Sie Problembehandlung bei der SNAT-Auslastung (Source Network Address Translation) und Verbindungstimeouts , um Probleme mit der SNAT-Portauslastung zu verstehen und zu beheben.

Ich kann mit dem Azure-Portal nicht auf 5.000 Knoten hochskalieren.

Verwenden Sie die Azure CLI, um auf maximal 5.000 Knoten hochzuskalieren, indem Sie die folgenden Schritte ausführen:

  1. Create eine Mindestanzahl von Knotenpools im Cluster (da der maximale Knotenpoolknotengrenzwert 1.000 beträgt), indem Sie den folgenden Befehl ausführen:

    az aks nodepool add --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedCluster
    
  2. Skalieren Sie die Knotenpools einzeln hoch. Legen Sie idealerweise fünf Minuten Ruhezeit zwischen aufeinanderfolgenden Skalierungen von 1.000 fest. Führen Sie den folgenden Befehl aus:

    az aks nodepool scale --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedCluster
    

Mein Upgrade wird ausgeführt, ist aber langsam.

In der Standardkonfiguration steigt AKS während eines Upgrades an, indem die folgenden Aktionen ausgeführt werden:

  • Erstellen eines neuen Knotens.
  • Skalieren des Knotenpools über die gewünschte Anzahl von Knoten um einen Knoten hinaus.

Für die Einstellungen für die maximale Zunahme bedeutet der Standardwert eines Knotens, dass AKS einen neuen Knoten erstellt, bevor die vorhandenen Anwendungen ausgeglichen und ein Knoten mit früherer Version ersetzt wird. Mit diesem zusätzlichen Knoten können AKS Workloadunterbrechungen minimieren.

Wenn Sie Cluster mit vielen Knoten aktualisieren, kann es mehrere Stunden dauern, bis der gesamte Cluster aktualisiert wird, wenn Sie den Standardwert verwenden max-surge. Sie können die max-surge Eigenschaft pro Knotenpool anpassen, um einen Kompromiss zwischen Upgradegeschwindigkeit und Upgradeunterbrechung zu ermöglichen. Indem Sie den maximalen Anstiegswert erhöhen, können Sie den Upgradeprozess früher beenden. Ein großer Wert für den maximalen Anstieg kann jedoch auch zu Unterbrechungen während des Upgradeprozesses führen.

Führen Sie den folgenden Befehl aus, um den maximalen Anstieg für einen vorhandenen Knotenpool zu erhöhen oder anzupassen:

az aks nodepool update --resource-group MyResourceGroup --name mynodepool --cluster-name MyManagedCluster --max-surge 5

Mein Upgrade erreicht das Kontingentlimit (5.000 Cluster)

Informationen zum Beheben dieses Problems finden Sie unter Erhöhen regionaler vCPU-Kontingente.

Meine interne Diensterstellung auf mehr als 750 Knoten ist langsam oder schlägt aufgrund eines Timeoutfehlers fehl.

Load Balancer Standard (SLB)-Back-End-Poolupdates stellen einen bekannten Leistungsengpass dar. Wir arbeiten an einer neuen Funktion, die eine schnellere Erstellung von Diensten und SLB im großen Stil ermöglicht. Informationen zum Senden Ihres Feedbacks zu diesem Problem finden Sie unter Azure Kubernetes-Unterstützung für Load Balancer mit IP-basiertem Back-End-Pool.

Lösung

Es wird empfohlen, den Cluster auf weniger als 750 Knoten herunterzuskalieren und dann einen internen Lastenausgleich für den Cluster zu erstellen. Um einen internen Lastenausgleich zu erstellen, erstellen Sie einen Diensttyp und azure-load-balancer-internal eine LoadBalancer Anmerkung gemäß der folgenden Beispielprozedur.

Schritt 1: Create eines internen Lastenausgleichs

Um einen internen Lastenausgleich zu erstellen, erstellen Sie ein Dienstmanifest mit dem Namen internal-lb.yaml , das den LoadBalancer Diensttyp und die azure-load-balancer-internal Anmerkung enthält, wie im folgenden Beispiel gezeigt:

apiVersion: v1
kind: Service
metadata:
  name: internal-app
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: internal-app

Schritt 2: Bereitstellen des internen Lastenausgleichs

Stellen Sie den internen Lastenausgleich mithilfe des kubectl apply Befehls bereit, und geben Sie den Namen Ihres YAML-Manifests an, wie im folgenden Beispiel gezeigt:

kubectl apply -f internal-lb.yaml

Nachdem Ihr Cluster erstellt wurde, können Sie auch einen internen Lastenausgleich (gemäß diesem Verfahren) bereitstellen und einen internen Dienst mit Lastenausgleich ausführen. Auf diese Weise können Sie dem Lastenausgleich im großen Stil weitere Dienste hinzufügen.

Die Erstellung des SLB-Diensts im großen Stil dauert Stunden

SLB-Back-End-Poolupdates sind ein bekannter Leistungsengpass. Wir arbeiten an einer neuen Funktion, die es Ihnen ermöglicht, Dienste mit Lastenausgleich im großen Stil mit erheblich schnellerer Leistung für Erstellungs-, Aktualisierungs- und Löschvorgänge auszuführen. Informationen zum Senden Ihres Feedbacks finden Sie unter Azure Kubernetes-Unterstützung für Load Balancer mit IP-basiertem Back-End-Pool.

Informationen zum Haftungsausschluss von Drittanbietern

Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.