Tutorial: Verwenden von PaaS-Diensten mit einem Azure Kubernetes Service-Cluster (AKS)
Mit Kubernetes können Sie PaaS-Dienste wie Azure Service Busverwenden, um Ihre Anwendungen zu entwickeln und auszuführen.
In diesem Lernprogramm, Teil fünf von sieben, erstellen Sie einen Azure Service Bus-Namespace und eine Warteschlange, um Ihre Anwendung zu testen. Folgendes wird vermittelt:
- Erstellen eines Azure Service Bus-Namespace und einer -Warteschlange.
- Aktualisieren Sie die Kubernetes-Manifestdatei so, dass sie die Azure Service Bus-Warteschlange verwendet.
- Testen Sie die aktualisierte Anwendung, indem Sie eine Bestellung übermitteln.
Voraussetzungen
In vorherigen Tutorials haben Sie eine Anwendung in ein Containerimage gepackt, das Image in Azure Container Registry hochgeladen, einen Kubernetes-Cluster erstellt und eine Anwendung bereitgestellt. Für dieses Tutorial benötigen Sie die vorab erstellte Kubernetes-Manifestdatei aks-store-quickstart.yaml
. Dieser Dateidownload war in einem vorherigen Tutorial im Anwendungsquellcode enthalten. Stellen Sie sicher, dass Sie das Repository geklont und Verzeichnisse in das geklonte Repository geändert haben. 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.
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. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sei bei Bedarf unter Installieren der Azure CLI.
Erstellen von Umgebungsvariablen
Erstellen Sie die folgenden Umgebungsvariablen, die für die Befehle in diesem Lernprogramm verwendet werden sollen:
LOC_NAME=eastus RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Erstellen eines Azure Service Bus-Namespace und einer -Warteschlange
In früheren Lernprogrammen haben Sie einen RabbitMQ-Container zum Speichern von Bestellungen verwendet, die vom order-service
übermittelt wurden. In diesem Lernprogramm verwenden Sie einen Azure Service Bus-Namespace, um einen Bereichscontainer für die Service Bus-Ressourcen innerhalb der Anwendung bereitzustellen. Sie verwenden auch eine Azure Service Bus-Warteschlange zum Senden und Empfangen von Nachrichten zwischen den Anwendungskomponenten. Weitere Informationen zu Azure Service Bus finden Sie unter Erstellen eines Azure Service Bus-Namespaces und einer -Warteschlange.
Erstellen eines Azure Service Bus-Namespace mithilfe des Befehls
az servicebus namespace create
.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
Erstellen einer Azure Service Bus-Warteschlange mithilfe des Befehls
az servicebus queue create
.az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
Erstellen einer Azure Service Bus-Autorisierungsregel mithilfe des Befehls
az servicebus queue authorization-rule create
.az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights Send
Abrufen der Azure Service Bus-Anmeldeinformationen für die spätere Verwendung mithilfe der Befehle
az servicebus namespace show
undaz servicebus queue authorization-rule keys list
.az servicebus namespace show --name $SB_NS --resource-group $RG_NAME --query name -o tsv az servicebus queue authorization-rule keys list --namespace-name $SB_NS --resource-group $RG_NAME --queue-name orders --name sender --query primaryKey -o tsv
Aktualisieren der Kubernetes-Manifestdatei
Konfigurieren Sie
kubectl
, um mithilfe des Befehls „az aks get-credentials
“ eine Verbindung mit Ihrem Cluster herzustellen.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Öffnen Sie die Datei
aks-store-quickstart.yaml
in einem Text-Editor.Entfernen Sie die vorhandenen Abschnitte
rabbitmq
-StatefulSet, -ConfigMap und -Dienst und ersetzen Sie den vorhandenen Abschnittorder-service
-Bereitstellung durch den folgenden Inhalt:apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: <REPLACE_WITH_YOUR_ACR_NAME>.azurecr.io/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>" # Example: sb-store-demo-123456.servicebus.windows.net - name: ORDER_QUEUE_PORT value: "5671" - name: ORDER_QUEUE_TRANSPORT value: "tls" - name: ORDER_QUEUE_USERNAME value: "sender" - name: ORDER_QUEUE_PASSWORD value: "<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi
Hinweis
Das direkte Hinzufügen vertraulicher Informationen (z. B. API-Schlüssel) in Ihren Kubernetes-Manifestdateien ist nicht sicher, da sie versehentlich in Coderepositorys committet werden könnten. Sie wurden in diesem Fall lediglich der Einfachheit halber hinzugefügt. Verwenden Sie für Produktionsworkloads stattdessen eine verwaltete Identität, um sich bei Azure Service Bus zu authentifizieren, oder speichern Sie Ihre Geheimnisse in Azure Key Vault.
Speichern und schließen Sie die aktualisierte Datei
aks-store-quickstart.yaml
.
Bereitstellen der aktualisierten Anwendung
Stellen Sie die Anwendung mit dem Befehl
kubectl apply
bereit.kubectl apply -f aks-store-quickstart.yaml
Die folgende Beispielausgabe zeigt die erfolgreich aktualisierten Ressourcen:
deployment.apps/order-service configured service/order-service unchanged deployment.apps/product-service unchanged service/product-service unchanged deployment.apps/store-front configured service/store-front unchanged
Testen der App
Aufgeben einer Beispielbestellung
Abrufen der externe IP-Adresse des Diensts
store-front
mithilfe des Befehlskubectl get service
.kubectl get service store-front
Navigieren Sie mithilfe von
http://<external-ip>
zur externen IP-Adresse desstore-front
-Diensts in Ihrem Browser.Aufgeben einer Bestellung, indem Sie ein Produkt auswählen und Zum Warenkorb hinzufügen auswählen.
Wählen Sie Warenkorb aus, um Ihre Bestellung anzuzeigen, und wählen Sie dann Zur Kasseaus.
Anzeigen der Bestellung in der Azure Service Bus-Warteschlange
- Navigieren Sie zum Azure-Portal und öffnen Sie den zuvor erstellten Azure Service Bus-Namespace.
- Wählen Sie unter Entitäten das Element Warteschlangen aus und wählen Sie dann die Warteschlange Bestellungen aus.
- Wählen Sie in der Warteschlange Bestellungen das Element Service Bus Explorer.
- Wählen Sie Ab Anfang einsehen aus, um die von Ihnen übermittelte Bestellung anzuzeigen.
Nächste Schritte
In diesem Tutorial haben Sie Azure Service Bus zum Aktualisieren und Testen der Beispielanwendung verwendet. Sie haben Folgendes gelernt:
- Erstellen eines Azure Service Bus-Namespace und einer -Warteschlange.
- Aktualisieren Sie die Kubernetes-Manifestdatei so, dass sie die Azure Service Bus-Warteschlange verwendet.
- Testen Sie die aktualisierte Anwendung, indem Sie eine Bestellung übermitteln.
Im nächsten Tutorial erfahren Sie, wie Sie eine Anwendung in AKS skalieren können.
Azure Kubernetes Service