Übung – Bereitstellen einer Beispielanwendung für Linux und Windows im AKS Edge Essentials-Cluster
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.
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:
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.
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
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>
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 denazure-vote-front
-Dienst alspending
angezeigt. Wenn sich dieEXTERNAL-IP
-Adresse vonpending
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.
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.
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.
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
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>
Stellen Sie sicher, dass der Beispieldienst ausgeführt wird:
kubectl get services
Notieren Sie sich dann den
PORT
dessample-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
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
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.