연습 - AKS Edge Essentials 클러스터에 샘플 Linux 및 Windows 애플리케이션 배포

완료됨

이 연습에서는 AKS Edge Essentials 클러스터에 컨테이너화된 Linux 및 Windows 애플리케이션을 배포합니다.

AKS Edge Essentials 배포 확인

참고 항목

다음 명령은 VM의 PowerShell 명령줄에서 실행됩니다.

  1. 다음 명령을 실행하여 배포가 성공했는지 확인합니다.

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

    다음 예제 스크린샷은 Linux 및 Windows 노드가 준비되고 Pod가 실행되고 있음을 보여 줍니다.

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

Linux 애플리케이션 배포

Microsoft의 azure-vote-front 이미지를 기반으로 하는 프런트 엔드와 백 엔드로 구성된 간단한 투표 앱인 샘플 애플리케이션을 배포합니다. 이 애플리케이션의 컨테이너 이미지는 ACR(Azure Container Registry)에서 호스트됩니다. 배포 매니페스트에 대한 GitHub 리포지토리 패키지의 linux-sample.yaml을 참조하세요. YAML에서 태그를 nodeSelector linux지정했습니다.

  1. 애플리케이션을 배포하려면 kubectl apply 명령을 사용합니다. 이 명령은 매니페스트 파일을 구문 분석하고 정의된 Kubernetes 개체를 만듭니다. 다음 예제와 같이 YAML 매니페스트 파일을 지정합니다.

    kubectl apply -f  https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
    
  2. Pod가 실행 중 상태가 될 때까지 몇 분 정도 기다립니다.

    kubectl get pods -o wide
    

    다음 예제 출력은 애플리케이션 Pod가 실행되고 있음을 보여 줍니다.

    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. 진행률을 모니터링하려면 매개 변수와 함께 --watch kubectl get services 명령을 사용합니다.

    kubectl get services --watch
    

    처음에는 EXTERNAL-IP 서비스용이 azure-vote-front .로 pending표시됩니다. 주소가 EXTERNAL-IP 실제 공용 IP 주소로 pending 변경되면 서비스에 할당된 IP 주소를 사용할 수 있습니다.

    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
    

    Ctrl+C를 눌러 시청을 중지합니다.

  4. 애플리케이션을 보려면 브라우저를 열고 서비스에 할당된 IP 주소 및 포트로 azure-vote-front 이동합니다. 이전 예제에서 서비스에 할당된 IP 주소 및 포트는 192.168.0.4:31032입니다.

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

Windows 애플리케이션 배포

Microsoft의 샘플 이미지를 기반으로 샘플 ASP.NET Core 애플리케이션을 배포합니다. 배포 매니페스트에 대한 GitHub 리포지토리 패키지에서 win-sample-aspnetcore.yaml을 참조하세요. YAML에서 태그를 nodeSelector으로 지정했습니다.

  1. kubectl apply 명령을 사용하여 애플리케이션을 배포합니다.

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample-aspnetcore.yaml
    
  2. Pod가 실행 중 상태가 될 때까지 몇 분 정도 기다립니다.

    kubectl get pods -o wide
    

    다음 예제 출력은 애플리케이션 sample-aspnetcore-786fb44bb-k449c Pod가 실행 중임을 보여줍니다.

    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. 샘플 서비스가 실행 중인지 확인합니다.

    kubectl get services
    

    그런 다음 서비스에 대한 메모를 PORT 작성합니다 sample-aspnetcore . 이 예제에서는 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. 애플리케이션이 실행 중인 Kubernetes 노드의 IP 주소를 검색하여 NodePort의 포트를 추가합니다.

    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. 애플리케이션을 보려면 브라우저를 열고 서비스에 할당된 IP 주소 및 포트로 sample-aspnetcore 이동합니다. 이전 예제에서 서비스에 할당된 IP 주소 및 포트는 192.168.0.3:31767입니다.

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