Bereitstellen von Anwendungen

In diesem Artikel wird beschrieben, wie Sie eine Containeranwendung in Ihrem Kubernetes-Cluster bereitstellen.

Voraussetzungen

Richten Sie zunächst Ihren Kubernetes-Einzelcomputer oder einen vollständigen Kubernetes-Cluster ein.

Bereitstellen einer Linux-Beispielanwendung

Schritt 1: Aktualisieren der Manifestdatei

In diesem Artikel wird eine Beispielanwendung verwendet, bei der es sich um eine einfache Abstimmungs-App handelt, die aus einem Front- und Back-End besteht, das auf dem Azure-Vote-Front-Image von Microsoft basiert. Das Containerimage für diese Anwendung wird auf Azure Container Registry (ACR) gehostet. Das Bereitstellungsmanifest finden Sie unter linux-sample.yaml im GitHub-Repositorypaket. Im YAML haben wir ein nodeSelector Tag als Linux angegeben.

Schritt 2: Bereitstellen der Anwendung

Verwenden Sie zum Bereitstellen Ihrer Anwendung den Befehl kubectl apply. Dieser Befehl analysiert die Manifestdatei und erstellt die definierten Kubernetes-Objekte. Geben Sie die YAML-Manifestdatei an, wie im folgenden Beispiel gezeigt:

kubectl apply -f  https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Schritt 3: Überprüfen der Pods

Warten Sie einige Minuten, bis sich die Pods im Ausführungszustand befinden:

kubectl get pods -o wide

Screenshot: Ausgeführte Linux-Pods

Schritt 4: Überprüfen der Dienste

Verwenden Sie zum Überwachen des Fortschritts den Befehl kubectl get services mit dem --watch Parameter:

kubectl get services

Screenshot: Ausgeführte Linux-Dienste

Anfänglich wird für EXTERNAL-IP den azure-vote-front Dienst als pendingangezeigt. Wenn sich die EXTERNAL-IP Adresse von pending in eine tatsächliche öffentliche IP-Adresse ändert, können Sie die dem Dienst zugewiesene IP-Adresse verwenden.

Wichtig

Wenn Sie Ihren Kubernetes-Cluster auf Einzelcomputerclustern ohne Angabe von -ServiceIPRangeSizebereitgestellt haben, haben Sie keine IP-Adressen für Ihre Workloaddienste zugewiesen, und Sie verfügen nicht über eine externe IP-Adresse. Suchen Sie in diesem Fall die IP-Adresse Ihrer Linux-VM (Get-AksEdgeNodeAddr):

Get-AksEdgeNodeAddr -NodeType Linux

Sie können den externen Port jetzt an die IP-Adresse des virtuellen Computers anfügen (z. B. 192.168.1.12:30432).

Schritt 5: Testen Der Anwendung

Öffnen Sie die externe IP-Adresse Ihres Diensts in einem Webbrowser, um die Anwendung in Aktion zu sehen:

Screenshot: Ausgeführte Linux-Apps

Wenn die Anwendung nicht geladen wird, liegt möglicherweise ein Autorisierungsproblem mit Ihrer Imageregistrierung vor. Verwenden Sie den Befehl kubectl get pods, um den Status Ihrer Container anzuzeigen. Wenn die Containerimages nicht abgerufen werden können, lesen Sie Authentifizieren mit Azure Container Registry aus Azure Kubernetes Service.

Schritt 6: Entfernen der Anwendung

Um sauber zu können, löschen Sie alle Ressourcen mit dem folgenden Befehl:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Bereitstellen einer Windows-Beispielanwendung in Ihrem Cluster

In diesem Beispiel wird ein Beispiel ASP.NET Anwendung basierend auf dem Beispielimage von Microsoft ausgeführt. Weitere Informationen finden Sie unter win-sample.yaml. Die YAML gibt das nodeSelector Tag als Windows an.

Schritt 1: Bereitstellen der Anwendung durch Angabe des Namens Ihres YAML-Manifests

Stellen Sie sicher, dass Sie sich in einem PowerShell-Fenster im Verzeichnis des YAML befinden, und führen Sie dann den folgenden Befehl aus:

kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Schritt 2: Überprüfen, ob der Beispielpod ausgeführt wird

Je nach Internetverbindung kann es eine Weile dauern, bis der Pod die ausgeführte status erreicht. Das ASP.NET Bild ist groß:

kubectl get pods -o wide

Screenshot: Ausgeführte Windows-Pods

Schritt 3: Überprüfen, ob der Beispieldienst ausgeführt wird

kubectl get services

Screenshot: Ausgeführte Windows-Dienste

Da dieses Beispiel als Dienst vom Typ NodePort bereitgestellt wird, können Sie die IP-Adresse des Kubernetes-Knotens abrufen, auf dem die Anwendung ausgeführt wird, und dann den Port des NodePort anfügen. Rufen Sie die IP-Adresse des Kubernetes-Knotens mit dem folgenden Get-AksEdgeNodeAddrBefehl ab:

Get-AksEdgeNodeAddr -NodeType Windows

Screesnhot zeigt Windows-Clusterinformationen an.

Schritt 4: Überprüfen des ausgeführten Windows-Beispiels

Öffnen Sie einen Webbrowser, und suchen Sie den NodePort , um auf Ihren Dienst zuzugreifen:

Screenshot: Ausgeführte Windows-App

Schritt 5: sauber nach oben

Um sauber zu können, löschen Sie alle Ressourcen mit dem folgenden Befehl:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Bereitstellen eigener Anwendungen

In den vorherigen Schritten wurde gezeigt, wie Sie unsere Beispielanwendungen bereitstellen können. Gehen Sie wie folgt vor, um Ihre eigene Anwendung bereitzustellen:

  • Packen Sie Ihre Anwendung in ein Containerimage, und laden Sie das Image dann in Azure Container Registry oder in eine Containerregistrierung Ihrer Wahl hoch. Führen Sie diese Schritte aus, um ein Containerimage Ihrer Anwendung zu erstellen.

  • AKS Edge Essentials ermöglicht Cluster mit gemischten Betriebssystemen. Stellen Sie sicher, dass Ihre Pods auf Knoten mit dem entsprechenden Betriebssystem geplant werden. Fügen Sie Ihren Bereitstellungsdateien hinzu nodeSelector . Diese Option weist Kubernetes an, Ihre Pods auf Knoten eines bestimmten Betriebssystems (Os) auszuführen. Wenn Es sich bei Ihrem Cluster um ein einzelnes Betriebssystem handelt, können Sie diesen Schritt überspringen. Als bewährte Methode bezeichnen Sie jedoch jede Bereitstellungsdatei mit Knotenselektoren:

    nodeSelector:
        "kubernetes.io/os": linux
    
    nodeSelector:
        "kubernetes.io/os": windows
    

Nächste Schritte