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.
Mit Kubernetes können Sie PaaS-Dienste wie Azure Service Busverwenden, um Ihre Anwendungen zu entwickeln und auszuführen.
In diesem Lernprogramm erstellen Sie einen Azure Service Bus-Namespace und eine Warteschlange, um Ihre Anwendung zu testen. Folgendes wird vermittelt:
- Erstellen Sie einen Azure Service Bus-Namespace und eine 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.
Bevor Sie beginnen
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.
In diesem Lernprogramm werden abrechenbare Azure Service Bus-Ressourcen erstellt. Verwenden Sie zum Ausführen dieser Schritte eine Identität, die Service Bus Ressourcen erstellen und verwalten kann, und aktualisieren Sie AKS-Workloads in Ihrer Ressourcengruppe, z. B. Mitwirkender oder Besitzer.
Für dieses Lernprogramm ist die Installation von AKS-Desktop erforderlich.
Erstellen von Umgebungsvariablen
Verwenden Sie die Azure CLI, um die folgenden Umgebungsvariablen für die Befehle in diesem Lernprogramm zu erstellen:
LOC_NAME=westus2 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.
In diesem Ablauf sendet order-service mithilfe der sender-Autorisierungsregel und des Schlüssels, die bzw. den Sie in diesem Abschnitt erstellen, Nachrichten an die Warteschlange orders.
Verwenden Sie die Azure CLI, um die folgenden Umgebungsvariablen zu erstellen, die für die Befehle in diesem Lernprogramm verwendet werden sollen.
Erstellen Sie mithilfe des
az servicebus namespace createBefehls einen Azure Service Bus Namespace.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAMEFahren Sie fort, wenn der Befehl erfolgreich abgeschlossen ist, und geben Sie die Namespacedetails zurück.
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_NSStellen Sie sicher, dass die Warteschlange vorhanden ist, bevor Sie fortfahren:
az servicebus queue show --name orders --resource-group $RG_NAME --namespace-name $SB_NS --query name -o tsvErstellen 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 SendRufen Sie die Azure Service Bus-Anmeldeinformationen für die spätere Verwendung mithilfe der
az servicebus namespace showUndaz servicebus queue authorization-rule keys listBefehle ab.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 tsvSpeichern Sie diese Werte für den Manifestaktualisierungsschritt:
-
<REPLACE_WITH_YOUR_ACR_NAME>: der Name Ihrer Azure Container Registry aus den vorherigen Tutorials. -
<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>:$SB_NS.servicebus.windows.net. -
<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>: derprimaryKeyWert aus der Befehlsausgabe.
-
Aktualisieren der Kubernetes-Manifestdatei
Wechseln Sie zu "Projekte" auf dem AKS-Desktop, und wählen Sie das Projekt aus, das Sie im vorherigen Lernprogramm erstellt haben.
my-dev-frontendWählen Sie die Registerkarte "Ressourcen " und dann "Workloads>Deployment: order-service" aus.
Wählen Sie den Editor aus.
Entfernen Sie die vorhandenen
rabbitmqAbschnitte "StatefulSet", "ConfigMap" und "Service". Ersetzen Sie den vorhandenenorder-serviceBereitstellungsabschnitt durch den folgenden Inhalt. Kopieren sie den Inhalt, und fügen Sie ihn ein: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 startupProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3000 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3
Hinweis
Das direkte Hinzufügen vertraulicher Informationen, z. B. API-Schlüsseln, zu Ihren Kubernetes-Manifestdateien ist unsicher und kann dazu führen, dass sie versehentlich in Code-Repositorys eingecheckt werden. In diesem Beispiel wird sie zur Einfachheit 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 Sie das Update, indem Sie Speichern und Übernehmen auswählen.
Stellen Sie sicher, dass das aktualisierte
order-serviceDeployment in der Workload-Ansicht einen fehlerfreien Zustand erreicht, bevor Sie fortfahren.
Bereitstellen der aktualisierten Anwendung
Stellen Sie die aktualisierte Anwendung mithilfe des
kubectl applyBefehls bereit.kubectl apply -f aks-store-quickstart.yamlDie 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Überprüfen Sie, ob die aktualisierte Bereitstellung läuft.
kubectl get pods
Fahren Sie fort, wenn sich die Anwendungs-Pods im Running Zustand befinden.
Testen der App
Aufgeben einer Beispielbestellung
AKS-Desktop
Rufen Sie die öffentliche IP-Adresse ab, indem Sie zu Resource>Network>Service: store-front>external IP wechseln.
Befehlszeile
Abrufen der externe IP-Adresse des Diensts
store-frontmithilfe des Befehlskubectl get service.kubectl get service store-frontWenn
EXTERNAL-IP<pending>ist, warten Sie eine Minute und führen Sie den Befehl erneut aus, bis eine öffentliche IP-Adresse angezeigt wird.Navigieren Sie mithilfe von
store-frontzur externen IP-Adresse deshttp://<external-ip>-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.
Auftrag in der Azure Service Bus-Warteschlange anzeigen
- 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 Von Anfang an anzeigen aus, um die von Ihnen aufgegebene 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 Sie einen Azure Service Bus-Namespace und eine 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.