Freigeben über


(VERALTET) Skalieren von Kubernetes-Pods und der Kubernetes-Infrastruktur

Tipp

Die aktualisierte Version dieses Lernprogramms, das Azure Kubernetes Service verwendet, finden Sie unter Tutorial: Skalieren von Anwendungen in Azure Kubernetes Service (AKS).

Warnung

Azure Container Service (ACS) wird ausgemustert. Für ACS werden keine neuen Features oder Funktionen mehr hinzugefügt. Sämtliche APIs, Portalfunktionen, CLI-Befehle und Dokumentationen werden als veraltet gekennzeichnet.

2017 wurde Azure Kubernetes Service (AKS) eingeführt, um die Verwaltung, die Bereitstellung und den Betrieb von Kubernetes zu vereinfachen. Falls Sie den Kubernetes-Orchestrator verwenden, migrieren Sie bitte bis spätestens 31. Januar 2020 zu Azure Kubernetes Service. Informationen zu den ersten Schritten finden Sie unter Migration von Azure Container Service (ACS) zu Azure Kubernetes Service (AKS).

Weitere Informationen finden Sie unter Einstellung von Azure Container Service am 31. Januar 2020.

Wenn Sie die Tutorials durchgearbeitet haben, verfügen Sie über einen funktionsfähigen Kubernetes-Cluster in Azure Container Service und haben die Azure Vote-App bereitgestellt.

In diesem Tutorial – Teil 5 von 7 – skalieren Sie die Pods in der App auf und testen das Feature der automatischen Skalierung von Pods. Sie erfahren auch, wie Sie die Anzahl von Azure-VM-Agent-Knoten skalieren, um die Clusterkapazität für das Hosten von Workloads zu ändern. Folgende Aufgaben wurden ausgeführt:

  • Manuelles Skalieren von Kubernetes-Pods
  • Konfigurieren der automatischen Skalierung von Pods, die das Front-End einer App ausführen
  • Skalieren der Kubernetes-Azure-Agent-Knoten

In den nachfolgenden Tutorials wird die Azure Voting-Anwendung aktualisiert. Zudem wird Log Analytics für die Überwachung des Kubernetes-Clusters konfiguriert.

Voraussetzungen

In vorherigen Tutorials wurde eine Anwendung in ein Containerimage gepackt, dieses Image wurde in Azure Container Registry hochgeladen, und es wurde ein Kubernetes-Cluster erstellt. Anschließend wurde die Anwendung im Kubernetes-Cluster ausgeführt.

Wenn Sie diese Schritte nicht ausgeführt haben und dies jetzt nachholen möchten, kehren Sie zum Tutorial 1 – Erstellen von Containerimages zurück.

Manuelles Skalieren von Pods

Bisher wurden die Front-End-Instanz und die Redis-Instanz der Azure Voting-App mit jeweils einem Replikat bereitgestellt. Führen Sie zum Überprüfen den Befehl kubectl get aus.

Navigieren Sie zu https://shell.azure.com, um Cloud Shell in Ihrem Browser zu öffnen.

kubectl get pods

Ausgabe:

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-2549686872-4d2r5   1/1       Running   0          31m
azure-vote-front-848767080-tf34m   1/1       Running   0          31m

Ändern Sie die Anzahl von Pods in der azure-vote-front-Bereitstellung manuell mithilfe des Befehls kubectl scale. In diesem Beispiel wird die Anzahl auf 5 erhöht.

kubectl scale --replicas=5 deployment/azure-vote-front

Führen Sie kubectl get pods aus, um zu überprüfen, ob Kubernetes die Pods erstellt. Nach ca. einer Minute werden die zusätzlichen Pods ausgeführt:

kubectl get pods

Ausgabe:

NAME                                READY     STATUS    RESTARTS   AGE
azure-vote-back-2606967446-nmpcf    1/1       Running   0          15m
azure-vote-front-3309479140-2hfh0   1/1       Running   0          3m
azure-vote-front-3309479140-bzt05   1/1       Running   0          3m
azure-vote-front-3309479140-fvcvm   1/1       Running   0          3m
azure-vote-front-3309479140-hrbf2   1/1       Running   0          15m
azure-vote-front-3309479140-qphz8   1/1       Running   0          3m

Automatisches Skalieren von Pods

Kubernetes unterstützt die automatische horizontale Skalierung von Pods, um die Anzahl von Pods in einer Bereitstellung je nach CPU-Nutzung und anderen ausgewählten Metriken anzupassen.

Um die automatische Skalierungsfunktion zu verwenden, müssen CPU-Anforderungen und -Grenzwerte Ihrer Pods definiert sein. In der azure-vote-front-Bereitstellung fordert der Front-End-Container 0,25 CPUs an, und es gilt ein Grenzwert von 0,5 CPUs. Die Einstellungen sehen folgendermaßen aus:

resources:
  requests:
     cpu: 250m
  limits:
     cpu: 500m

Das folgende Beispiel verwendet den Befehl kubectl autoscale, um die Anzahl von Pods in der azure-vote-front-Bereitstellung automatisch zu skalieren. Wenn die CPU-Nutzung 50 % übersteigt, erhöht die automatische Skalierungsfunktion die Anzahl von Pods auf den Maximalwert 10.

kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10

Führen Sie den folgenden Befehl aus, um den Status der automatischen Skalierungsfunktion anzuzeigen:

kubectl get hpa

Ausgabe:

NAME               REFERENCE                     TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
azure-vote-front   Deployment/azure-vote-front   0% / 50%   3         10        3          2m

Nach einigen Minuten mit minimaler Last in der Azure Voting-App sinkt die Anzahl von Podreplikaten automatisch auf 3.

Skalieren der Agents

Wenn Sie Ihren Kubernetes-Cluster mithilfe der Standardbefehle im vorherigen Tutorial erstellt haben, verfügt er über drei Agent-Knoten. Sie können die Anzahl von Agents manuell anpassen, wenn Sie größere oder kleinere Containerworkloads in Ihrem Cluster planen. Verwenden Sie den Befehl az acs scale, und geben Sie die Anzahl von Agents mit dem --new-agent-count-Parameter an.

Das folgende Beispiel erhöht die Anzahl von Agent-Knoten im Kubernetes-Cluster namens myK8sCluster auf vier. Diese Ausführung dieses Befehls dauert einige Minuten.

az acs scale --resource-group=myResourceGroup --name=myK8SCluster --new-agent-count 4

Die Befehlsausgabe zeigt die Anzahl von Agent-Knoten im Wert von agentPoolProfiles:count an:

{
  "agentPoolProfiles": [
    {
      "count": 4,
      "dnsPrefix": "myK8SCluster-myK8SCluster-e44f25-k8s-agents",
      "fqdn": "",
      "name": "agentpools",
      "vmSize": "Standard_D2_v2"
    }
  ],
...

Nächste Schritte

In diesem Tutorial haben Sie verschiedene Skalierungsfunktionen in Ihrem Kubernetes-Cluster verwendet. Sie haben folgende Aufgaben ausgeführt:

  • Manuelles Skalieren von Kubernetes-Pods
  • Konfigurieren der automatischen Skalierung von Pods, die das Front-End einer App ausführen
  • Skalieren der Kubernetes-Azure-Agent-Knoten

Fahren Sie mit dem nächsten Tutorial fort, um mehr über die Aktualisierung von Anwendungen im Cluster zu erfahren.