Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie die vorherigen Tutorials durchgearbeitet haben, verfügen Sie über einen funktionsfähigen Kubernetes-Cluster sowie die Azure Store Front-App.
In diesem Lernprogramm skalieren Sie die Pods in der App, testen die automatische Skalierung von Pods und skalieren die Anzahl der Azure VM-Knoten, um die Kapazität des Clusters für das Hosten von Workloads zu ändern. Folgendes wird vermittelt:
- Skalieren der Kubernetes-Knoten
- Manuelles Skalieren von Kubernetes-Pods, die Ihre Anwendung ausführen
- Konfigurieren Sie die Autoskalierung für Pods, die das Frontend der App ausführen.
Bevor Sie beginnen
In den vorherigen Tutorials haben Sie eine Anwendung in ein Containerimage gepackt, das Image in Azure Container Registry hochgeladen, einen AKS-Cluster erstellt, eine Anwendung im AKS-Cluster bereitgestellt und Azure Service Bus für die erneute Bereitstellung einer aktualisieren Anwendung verwendet. Wenn Sie diese Schritte noch nicht ausgeführt haben und dieses Tutorial durcharbeiten möchten, beginnen Sie mit Tutorial 1:Vorbereiten einer Anwendung für AKS.
Dieses Tutorial ändert die Anzahl der Pods und Knoten und kann die Rechenkosten erhöhen. Verwenden Sie eine Identität mit der Berechtigung zum Skalieren von AKS-Workloads und Knotenpools, z. B. Mitwirkender oder Besitzer für die Ressourcengruppe.
Für dieses Tutorial wird mindestens Version 2.34.1 der Azure-Befehlszeilenschnittstelle vorausgesetzt. Führen Sie az --version aus, um die Version zu ermitteln. Wenn Sie eine Installation durchführen oder ein Upgrade ausführen müssen, lesen Sie Azure CLI installieren.
Manuelles Skalieren von Pods
AKS-Desktop
Bearbeiten Sie die Skalierungskonfiguration für order-service, indem Sie Skalierung>Deployment auswählen: order-service>Konfiguration bearbeiten>Anzahl der Replikate: 5 auswählen.
Stellen Sie sicher, dass das Bereitstellungsupdate abgeschlossen ist, bevor Sie fortfahren.
Zeigen Sie die Pods in Ihrem Cluster mit dem Befehl
kubectl getan.kubectl get podsDie folgende Beispielausgabe zeigt die Pods, auf denen die Azure Store Front-App ausgeführt wird:
NAME READY STATUS RESTARTS AGE order-service-848767080-tf34m 1/1 Running 0 31m product-service-4019737227-2q2qz 1/1 Running 0 31m store-front-2606967446-2q2qz 1/1 Running 0 31mÄndern Sie die Anzahl der Pods im Deployment store-front manuell mithilfe des Befehls
kubectl scale.kubectl scale --replicas=5 deployment.apps/store-frontMit dem Befehl
kubectl get podskönnen Sie überprüfen, ob die zusätzlichen Pods erstellt wurden.kubectl get pods --selector app=store-frontDie folgende Beispielausgabe zeigt die zusätzlichen Pods, auf denen die Azure-Store-Front-App ausgeführt wird:
NAME READY STATUS RESTARTS AGE store-front-3309479140-2hfh0 1/1 Running 0 3m store-front-3309479140-bzt05 1/1 Running 0 3m store-front-3309479140-fvcvm 1/1 Running 0 3m store-front-3309479140-hrbf2 1/1 Running 0 15m store-front-3309479140-qphz8 1/1 Running 0 3m
Pods automatisch skalieren
AKS-Desktop
Wählen Sie im Project die Schaltfläche "Anwendung bereitstellen" >kubernetes YAML aus.
Kopieren Sie dieses YAML-Autoskalermanifest und die Ressourcenlimits und fügen Sie sie ein.
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: store-front-hpa spec: maxReplicas: 10 # define max replica count minReplicas: 3 # define min replica count scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: store-front metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50Wählen Sie Weiter>Bereitstellen>Schließen aus.
Wählen Sie Skalierung>Bereitstellung auswählen: store-front aus. Sie können sehen, dass der Skalierungsmodus jetzt auf HPA, Replikatgrenzen und CPU-Auslastung /Ziel festgelegt ist, die von der Konfiguration festgelegt ist.
Stellen Sie sicher, dass der HPA-Modus aktiviert ist und die Replikatgrenzen den Manifestwerten entsprechen.
Befehlszeile
Zum Verwenden der horizontalen Pod-Autoskalierung müssen für alle Container CPU-Anforderungen und -Grenzwerte festgelegt sein, und Pods müssen Anforderungen festgelegt haben. In der aks-store-quickstart-Bereitstellung fordert der Front-End-Container 1 m CPUs an, und es gilt ein Grenzwert von 1000 m CPUs.
Diese Ressourcenanforderungen und -grenzwerte sind so für jeden Container festgelegt, wie im folgenden VAML-Beispielcode gezeigt:
...
containers:
- name: store-front
image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
ports:
- containerPort: 8080
name: store-front
...
resources:
requests:
cpu: 1m
...
limits:
cpu: 1000m
...
Pods mithilfe einer Manifestdatei automatisch skalieren
Erstellen Sie eine Manifestdatei, um das Verhalten der Autoskalierung und die Ressourcengrenzwerte zu bestimmen, wie in der folgenden Kurzform-Beispielmanifestdatei
aks-store-quickstart-hpa.yamlgezeigt:apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: store-front-hpa spec: maxReplicas: 10 # define max replica count minReplicas: 3 # define min replica count scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: store-front metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50Wenden Sie die Manifestdatei für die Autoskalierung mithilfe des Befehls
kubectl applyan.kubectl apply -f aks-store-quickstart-hpa.yamlÜberprüfen Sie mit dem Befehl
kubectl get hpaden Status der Autoskalierung.kubectl get hpaNach einigen Minuten mit minimaler Last in der Azure Store Front-App sinkt die Anzahl von Podreplikaten auf 3. Sie können den Befehl
kubectl get podserneut verwenden, um zu sehen, wie die nicht benötigten Pods entfernt werden.Fahren Sie fort, wenn die
TARGETSundREPLICASSpalten das fürstore-front-hpaerwartete Autoskalierungsverhalten anzeigen.
Hinweis
Sie können das Kubernetes-based Event Driven Autoscaling-Add-On (KEDA) für AKS auf Ihrem Cluster aktivieren, um die Skalierung auf Basis der Anzahl der Ereignisse zu steuern, die verarbeitet werden müssen. Weitere Informationen finden Sie unter Aktivieren der vereinfachten Anwendungsautoskalierung mit dem Add-On Kubernetes Event-Driven Autoscaling (KEDA) (Vorschau).
Manuelles Skalieren von AKS-Knoten
Hinweis
Wenn Sie einen automatischen AKS-Cluster erstellt haben, gelten diese Schritte nicht, da die Clusterknoten automatisch skalieren.
Wenn Sie Ihren AKS Standard-Cluster mithilfe der Befehle in den vorherigen Lernprogrammen erstellt haben, verfügt Ihr Cluster über drei Knoten. Wenn Sie diesen Wert erhöhen oder verringern möchten, können Sie die Anzahl der Knoten manuell anpassen.
Im folgenden Beispiel wird die Anzahl der Knoten im Kubernetes-Cluster mit dem Namen "myAKSCluster" auf fünf erhöht. Diese Ausführung dieses Befehls dauert einige Minuten.
Skalieren Sie Ihre Clusterknoten mit dem Befehl
az aks scale.Nachdem der Cluster erfolgreich skaliert wurde, ähnelt die Ausgabe der folgenden Beispielausgabe:
az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster --query "[].{name:name,count:count}" -o tableaz aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 5Nachdem der Cluster erfolgreich skaliert wurde, ähnelt Ihre Ausgabe der folgenden Beispielausgabe:
"aadProfile": null, "addonProfiles": null, "agentPoolProfiles": [ { ... "count": 5, "mode": "System", "name": "nodepool1", "osDiskSizeGb": 128, "osDiskType": "Managed", "osType": "Linux", "ports": null, "vmSize": "Standard_DS2_v2", "vnetSubnetId": null ... } ... ]
Sie können die Knoten in Ihrem Cluster auch automatisch skalieren. Weitere Informationen finden Sie unter Verwenden der Autoskalierung für Cluster mit Knotenpools.
Nächste Schritte
In diesem Tutorial haben Sie verschiedene Skalierungsfunktionen in Ihrem Kubernetes-Cluster verwendet. Sie haben Folgendes gelernt:
- Manuelles Skalieren von Kubernetes-Pods, die Ihre Anwendung ausführen
- Konfigurieren Sie die Autoskalierung für Pods, die das Frontend der App ausführen.
- Manuelles Skalieren der Kubernetes-Knoten
Wenn Sie fertig sind, wählen Sie das Symbol "Löschen " aus, und wählen Sie in der Bestätigungsmeldung auch den Namespace löschen.
Im nächsten Tutorial erfahren Sie, wie Sie ein Upgrade von Kubernetes in Ihrem AKS-Cluster durchführen.