Teilen über


Tutorial: Bereitstellen einer Anwendung in Azure Kubernetes Service (AKS)

Kubernetes bietet eine verteilte Plattform für containerbasierte Anwendungen. Sie erstellen Ihre eigenen Anwendungen und Dienste in einem Kubernetes-Cluster, stellen diese bereit und lassen den Cluster die Verfügbarkeit und Konnektivität verwalten.

In diesem Tutorial – Teil 4 von 7 – stellen Sie eine Beispielanwendung in einem Kubernetes-Cluster bereit. Folgendes wird vermittelt:

  • Aktualisieren einer Kubernetes-Manifestdatei
  • Ausführen einer Anwendung in Kubernetes
  • Testen Sie die Anwendung.

Tipp

Mit AKS können Sie die folgenden Ansätze für die Konfigurationsverwaltung verwenden:

Voraussetzungen

In vorherigen Tutorials haben Sie eine Anwendung in ein Containerimage gepackt, das Image in Azure Container Registry hochgeladen und einen Kubernetes-Cluster erstellt. Für dieses Tutorial benötigen Sie die vorab erstellte Kubernetes-Manifestdatei aks-store-quickstart.yaml. Diese Datei wurde im Quellcode der Anwendung aus Tutorial 1 – Vorbereiten der Anwendung für AKS heruntergeladen.

Für dieses Tutorial wird mindestens Version 2.0.53 der Azure-Befehlszeilenschnittstelle vorausgesetzt. Überprüfen Sie Ihre Version mit az --version. Informationen zum Ausführen einer Installation oder eines Upgrades finden Sie unter Installieren der Azure CLI.

Aktualisieren der Manifestdatei

In diesen Tutorials speichert Ihre Azure Container Registry-Instanz (ACR) die Containerimages für die Beispielanwendung. Zum Bereitstellen der Anwendung müssen Sie die Imagenamen in der Kubernetes-Manifestdatei aktualisieren, sodass sie den ACR-Anmeldeservernamen enthalten.

  1. Führen Sie den Befehl az acr list aus, um die Anmeldeserveradresse abzurufen, und fragen Sie den Anmeldeserver ab.

    az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
    
  2. Vergewissern Sie sich, dass Sie sich im geklonten Verzeichnis aks-store-demo befinden, und öffnen Sie dann die aks-store-quickstart.yaml Manifestdatei mit einem Text-Editor.

  3. Aktualisieren Sie die Eigenschaft image für die Container, indem Sie ghcr.io/azure-samples durch Ihren ACR-Anmeldeservernamen ersetzen.

    containers:
    ...
    - name: order-service
      image: <acrName>.azurecr.io/aks-store-demo/order-service:latest
    ...
    - name: product-service
      image: <acrName>.azurecr.io/aks-store-demo/product-service:latest
    ...
    - name: store-front
      image: <acrName>.azurecr.io/aks-store-demo/store-front:latest
    ...
    
  4. Speichern und schließen Sie die Datei.

Ausführen der Anwendung

  1. Stellen Sie die Anwendung mithilfe des kubectl apply-Befehls bereit, der die Manifestdatei analysiert und die definierten Kubernetes-Objekte erstellt.

    kubectl apply -f aks-store-quickstart.yaml
    

    Die folgende Beispielausgabe zeigt die Ressourcen, die erfolgreich im AKS-Cluster erstellt wurden:

    statefulset.apps/rabbitmq created
    configmap/rabbitmq-enabled-plugins created
    service/rabbitmq created
    deployment.apps/order-service created
    service/order-service created
    deployment.apps/product-service created
    service/product-service created
    deployment.apps/store-front created
    service/store-front created
    
  2. Überprüfen Sie, ob die Bereitstellung erfolgreich war, indem Sie die Pods mit kubectl ansehen

    kubectl get pods
    

Testen der Anwendung

Wenn die Anwendung ausgeführt wird, macht ein Kubernetes-Dienst das Anwendungs-Front-End im Internet verfügbar. Dieser Vorgang kann einige Minuten dauern.

Befehlszeile

  1. Verwenden Sie zum Überwachen des Fortschritts den Befehl kubectl get service mit dem Argument --watch:

    kubectl get service store-front --watch
    

    Die EXTERNAL-IP für den Dienst store-front wird zunächst als <pending> angezeigt:

    store-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s
    
  2. Nachdem die EXTERNAL-IP-Adresse von <pending> in eine öffentliche IP-Adresse geändert wurde, verwenden Sie CTRL-C, um die kubectl-Überwachung zu beenden.

    Die folgende Beispielausgabe zeigt eine gültige öffentliche IP-Adresse, die dem Dienst zugewiesen ist:

    store-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s
    
  3. Öffnen Sie die externe IP-Adresse Ihres Diensts in einem Webbrowser, um die Anwendung in Aktion zu sehen: http://<external-ip>

    Screenshot der AKS Store-Beispielanwendung

Wird die Anwendung nicht geladen, liegt möglicherweise ein Autorisierungsproblem mit Ihrer Imageregistrierung vor. Verwenden Sie den Befehl kubectl get pods, um den Status Ihrer Container anzuzeigen. Können die Containerimages nicht gepullt werden, lesen Sie die Informationen unter Authentifizieren bei Azure Container Registry aus Azure Kubernetes Service.

Azure-Portal

Navigieren Sie zum Azure-Portal, um Ihre Bereitstellungsinformationen einzusehen.

  1. Navigieren Sie zu Ihrer AKS-Clusterressource.

  2. Wählen Sie im Menü „Dienst“ unter Kubernetes-Ressourcen die Option Dienste und Eingänge aus.

  3. Kopieren Sie die in der Spalte für den store-front-Dienst angezeigte externe IP-Adresse.

  4. Fügen Sie die IP-Adresse in Ihren Browser ein, und besuchen Sie die Seite Ihres Stores.

    Screenshot der AKS Store-Beispielanwendung

Bereinigen von Ressourcen

Da Sie die Funktionsfähigkeit der Anwendung überprüft haben, können Sie das Cluster jetzt aus der Anwendung entfernen. Die Anwendung wird im nächsten Tutorial erneut bereitgestellt.

  1. Beenden und entfernen Sie die Containerinstanzen und -ressourcen mithilfe des Befehls kubectl delete.

    kubectl delete -f aks-store-quickstart.yaml
    
  2. Überprüfen Sie mithilfe des Befehls kubectl get pods, ob alle Anwendungspods entfernt wurden.

    kubectl get pods
    

Nächste Schritte

In diesem Tutorial haben Sie eine Azure-Beispielanwendung in einem Kubernetes-Cluster in AKS bereitgestellt. Sie haben Folgendes gelernt:

  • Aktualisieren einer Kubernetes-Manifestdatei
  • Ausführen einer Anwendung in Kubernetes
  • Testen Sie die Anwendung.

Im nächsten Tutorial erfahren Sie, wie Sie PaaS-Dienste für zustandsbehaftete Workloads in Kubernetes verwenden.