Übung – Bereitstellen einer Beispielanwendung für Linux und Windows im AKS Edge Essentials-Cluster

Abgeschlossen

In dieser Übung stellen wir eine containerisierte Linux- und Windows-Anwendung im AKS Edge Essentials-Cluster bereit.

Überprüfen der Bereitstellung von AKS Edge Essentials

Hinweis

Die folgenden Befehle werden in der PowerShell-Befehlszeile der VM ausgeführt.

  1. Vergewissern Sie sich, dass die Bereitstellung erfolgreich war, indem Sie den folgenden Befehl ausführen:

    kubectl get nodes -o wide
    kubectl get pods -A -o wide
    

    Der folgende Beispielscreenshot zeigt, dass die Linux- und Windows-Knoten bereit sind und die Pods ausgeführt werden:

    Screenshot of Windows VM with PowerShell commands output demonstrating a successful deployment of AKS Edge Essentials.

Bereitstellen einer Linux-Anwendung

Stellen Sie als Beispielanwendung eine einfache Abstimmungs-App bereit, die aus einem Front- und Back-End besteht und auf dem azure-vote-front-Image von Microsoft basiert. Das Containerimage für diese Anwendung wird in der Azure Container Registry (ACR) gehostet. Das Bereitstellungsmanifest finden Sie in der Datei linux-sample.yaml im GitHub-Repo-Paket. In der YAML-Datei haben wir für das nodeSelector-Tag Linux angegeben.

  1. 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 wie im folgenden Beispiel an:

    kubectl apply -f  https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
    
  2. Warten Sie einige Minuten, bis sich die Pods im Zustand wird ausgeführt befinden:

    kubectl get pods -o wide
    

    Die folgende Beispielausgabe zeigt, dass die Anwendungspods ausgeführt werden:

    PS C:\Users\azureuser> kubectl get pods -o wide
    NAME                                READY   STATUS    RESTARTS   AGE   IP          NODE         NOMINATED NODE   READINESS GATES
    azure-vote-back-66c88ccc8-fjwfq     1/1     Running   0          46s   10.42.0.6   myvm-ledge   <none>           <none>
    azure-vote-front-85dc674b97-xp8d8   1/1     Running   0          46s   10.42.0.7   myvm-ledge   <none>           <none>
    
  3. Verwenden Sie zum Überwachen des Fortschritts den Befehl kubectl get services mit dem Parameter --watch:

    kubectl get services --watch
    

    Zunächst wird die EXTERNAL-IP für den azure-vote-front-Dienst als pendingangezeigt. Wenn sich die EXTERNAL-IP-Adresse von pending zu einer richtigen öffentlichen IP-Adresse ändert, können Sie die dem Dienst zugewiesene IP-Adresse verwenden.

    PS C:\Users\azureuser> kubectl get services --watch
    NAME               TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
    azure-vote-back    ClusterIP      10.43.208.68   <none>        6379/TCP       4m52s
    azure-vote-front   LoadBalancer   10.43.125.83   192.168.0.4   80:31032/TCP   4m52s
    kubernetes         ClusterIP      10.43.0.1      <none>        443/TCP        16m
    

    Drücken Sie STRG + C, um die Überwachung zu beenden.

  4. Um die Anwendung anzuzeigen, öffnen Sie einen Browser und navigieren Sie zu der IP-Adresse und dem Port, die dem azure-vote-front-Dienst zugewiesen sind. Im vorherigen Beispiel ist die dem Dienst zugewiesene IP-Adresse und der Port 192.168.0.4:31032.

    Screenshot of Windows VM with linux sample application running in the browser.

Bereitstellen einer Windows-Anwendung

Stellen Sie eine ASP.NET Core-Beispielanwendung basierend auf dem Beispielimage von Microsoft bereit. Das Bereitstellungsmanifest finden Sie in der Datei win-sample-aspnetcore.yaml im GitHub-Repo-Paket. In der YAML-Datei haben wir für das nodeSelector-Tag Windows angegeben.

  1. Stellen Sie die Anwendung mithilfe des Befehls kubectl apply bereit:

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample-aspnetcore.yaml
    
  2. Warten Sie einige Minuten, bis sich der Pod im Zustand wird ausgeführt befindet:

    kubectl get pods -o wide
    

    Die folgende Beispielausgabe zeigt, dass der Anwendungspod sample-aspnetcore-786fb44bb-k449c ausgeführt wird:

    PS C:\Users\azureuser> kubectl get pods -o wide
    NAME                                READY   STATUS    RESTARTS   AGE     IP          NODE         NOMINATED NODE   READINESS GATES
    azure-vote-back-66c88ccc8-fjwfq     1/1     Running   0          8m      10.42.0.6   myvm-ledge   <none>           <none>
    azure-vote-front-85dc674b97-xp8d8   1/1     Running   0          8m      10.42.0.7   myvm-ledge   <none>           <none>
    sample-aspnetcore-786fb44bb-k449c   1/1     Running   0          2m56s   10.42.1.3   myvm-wedge   <none>           <none>
    
  3. Stellen Sie sicher, dass der Beispieldienst ausgeführt wird:

    kubectl get services
    

    Notieren Sie sich dann den PORT des sample-aspnetcore-Dienstes. In diesem Beispiel lautet er 31767.

    PS C:\Users\azureuser> kubectl get services
    NAME               TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
    azure-vote-back    ClusterIP      10.43.208.68   <none>        6379/TCP        10m52s
    azure-vote-front   LoadBalancer   10.43.125.83   192.168.0.4   80:31032/TCP    10m52s
    kubernetes         ClusterIP      10.43.0.1      <none>        443/TCP         26m
    sample-aspnetcore  NodePort       10.43.237.30   <none>        8080:31767/TCP  6m40s
    
  4. Rufen Sie die IP-Adresse des Kubernetes-Knotens ab, auf dem die Anwendung ausgeführt wird, um den Port des NodePort anzufügen:

    Get-AksEdgeNodeAddr -NodeType Windows
    
    PS C:\Users\azureuser> Get-AksEdgeNodeAddr -NodeType Windows
    
    [01/16/2024 14:44:22] Querying IP and MAC addresses from virtual machine (myvm-wedge)
    
     - Virtual machine MAC: 00:15:5d:02:7c:eb
     - Virtual machine IP : 192.168.0.3 retrieved directly from virtual machine
    
    Name                           Value
    ----                           -----
    IpAddress                      192.168.0.3
    MacAddress                     00:15:5d:02:7c:eb
    
  5. Um die Anwendung anzuzeigen, öffnen Sie einen Browser und navigieren Sie zu der IP-Adresse und dem Port, die dem sample-aspnetcore-Dienst zugewiesen sind. Im vorherigen Beispiel ist die dem Dienst zugewiesene IP-Adresse und der Port 192.168.0.3:31767.

    Screenshot of Windows VM with windows sample application running in the browser.