Exercício - Implantar um aplicativo do Linux e do Windows de exemplo no cluster do AKS Edge Essentials

Concluído

Neste exercício, implantamos um aplicativo Linux e Windows em contêineres no cluster do AKS Edge Essentials.

Verificar a implantação do AKS Edge Essentials

Observação

Os comandos a seguir são executados na linha de comando do PowerShell da VM.

  1. Confirme se a implantação foi bem-sucedida executando o seguinte comando:

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

    A captura de tela de exemplo a seguir mostra que os nós do Linux e Windows estão prontos e os pods estão em execução:

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

Implantar um aplicativo Linux

Implante um aplicativo de exemplo que é um aplicativo de votação simples, consistindo em um front-end e back-end, que é baseado na imagem azure-vote-front da Microsoft. A imagem de contêiner para este aplicativo é hospedada no (ACR) Registro de Contêiner do Azure. Consulte linux-sample.yaml no pacote de repositório do GitHub, para obter um manifesto de implantação. No YAML, especificamos uma marca nodeSelector como Linux.

  1. Para implantar o aplicativo, use o comando kubectl apply. Esse comando analisa o arquivo de manifesto e cria objetos Kubernetes definidos. Especifique o arquivo de manifesto YAML, conforme mostrado no exemplo a seguir:

    kubectl apply -f  https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
    
  2. Aguarde alguns minutos para que os pods estejam no estado de execução:

    kubectl get pods -o wide
    

    A saída de exemplo a seguir mostra que os pods de aplicativo estão em execução:

    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. Para monitorar o progresso, use o comando kubectl get services com o parâmetro --watch:

    kubectl get services --watch
    

    Inicialmente, o EXTERNAL-IP do serviço azure-vote-front é mostrado como pending. Quando o endereço EXTERNAL-IP muda de pending para um endereço IP público real, você pode usar o endereço IP atribuído ao serviço.

    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
    

    Para parar a inspeção, pressione CTRL + C.

  4. Para exibir o aplicativo, abra um navegador e navegue até o endereço IP e a porta atribuídos ao serviço azure-vote-front. No exemplo anterior, o endereço IP e a porta atribuídos ao serviço são 192.168.0.4:31032.

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

Implantar um aplicativo do Windows

Implante um aplicativo ASP.NET Core de exemplo com base na imagem de exemplo da Microsoft. Consulte win-sample-aspnetcore.yaml no pacote de repositório do GitHub, para obter um manifesto de implantação. No YAML, especificamos uma marca nodeSelector como Linux.

  1. Use o comando kubectl apply para implantar o aplicativo:

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample-aspnetcore.yaml
    
  2. Aguarde alguns minutos para que o pod esteja no estado de execução:

    kubectl get pods -o wide
    

    A saída de exemplo a seguir mostra que o pod sample-aspnetcore-786fb44bb-k449c de aplicativo está em execução:

    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. Verifique se o serviço de exemplo está em execução:

    kubectl get services
    

    Em seguida, anote PORT do serviço sample-aspnetcore. Neste exemplo, é 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. Recupere o endereço IP do nó Kubernetes no qual o aplicativo está sendo executado para anexar a porta do 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. Para exibir o aplicativo, abra um navegador e navegue até o endereço IP e a porta atribuídos ao serviço sample-aspnetcore. No exemplo anterior, o endereço IP e a porta atribuídos ao serviço são 192.168.0.3:31767.

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