Implementar uma aplicação

Este artigo descreve como implementar uma aplicação em contentores no cluster do Kubernetes.

Pré-requisitos

Para começar, configure o kubernetes de máquina única ou o cluster completo do Kubernetes .

Implementar uma aplicação Linux de exemplo

Passo 1: atualizar o ficheiro de manifesto

Este artigo utiliza uma aplicação de exemplo que é uma aplicação de votação simples que consiste num front-end e back-end, que se baseia na imagem azure-vote-front da Microsoft. A imagem de contentor desta aplicação está alojada no Azure Container Registry (ACR). Veja linux-sample.yaml no pacote de repositório do GitHub para o manifesto de implementação. No YAML, especificámos uma nodeSelector etiqueta como Linux.

Passo 2: implementar a aplicação

Para implementar a sua aplicação, utilize o comando kubectl apply. Este comando analisa o ficheiro de manifesto e cria os objetos de Kubernetes definidos. Especifique o ficheiro de manifesto YAML, conforme mostrado no exemplo seguinte:

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

Passo 3: verificar os pods

Aguarde alguns minutos para que os pods estejam no estado de execução :

kubectl get pods -o wide

Captura de ecrã a mostrar pods do Linux em execução.

Passo 4: verificar os serviços

Para monitorizar o progresso, utilize o comando kubectl get services com o --watch parâmetro:

kubectl get services

Captura de ecrã a mostrar os serviços do Linux em execução.

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

Importante

Em clusters de máquina única, se tiver implementado o cluster do Kubernetes sem especificar um -ServiceIPRangeSize, não terá IPs alocados para os seus serviços de carga de trabalho e não terá um endereço IP externo. Neste caso, localize o endereço IP da VM do Linux (Get-AksEdgeNodeAddr):

Get-AksEdgeNodeAddr -NodeType Linux

Agora, pode acrescentar a porta externa ao endereço IP da VM (por exemplo, 192.168.1.12:30432).

Passo 5: testar a sua aplicação

Para ver a aplicação em ação, abra um browser para o endereço IP externo do seu serviço:

Captura de ecrã a mostrar as aplicações do Linux em execução.

Se a aplicação não carregar, poderá dever-se a um problema de autorização com o registo de imagens. Para ver o estado dos seus contentores, utilize o comando kubectl get pods. Se não for possível obter as imagens de contentor, consulte Autenticar com Azure Container Registry de Azure Kubernetes Service.

Passo 6: remover a aplicação

Para limpar, elimine todos os recursos com o seguinte comando:

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

Implementar uma aplicação Windows de exemplo no cluster

Este exemplo executa um exemplo ASP.NET aplicação com base na imagem de exemplo da Microsoft. Veja win-sample.yaml. O YAML especifica a nodeSelector etiqueta como Windows.

Passo 1: implementar a aplicação ao especificar o nome do seu manifesto YAML

Certifique-se de que está no diretório do YAML numa janela do PowerShell e, em seguida, execute o seguinte comando:

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

Passo 2: verificar se o pod de exemplo está em execução

Pode demorar algum tempo até que o pod atinja o estado de execução, dependendo da sua ligação à Internet. A imagem ASP.NET é grande:

kubectl get pods -o wide

Captura de ecrã a mostrar pods do Windows em execução.

Passo 3: verificar se o serviço de exemplo está em execução

kubectl get services

Captura de ecrã a mostrar os serviços do Windows em execução.

Uma vez que este exemplo é implementado como um serviço do tipo NodePort, pode obter o endereço IP do nó do Kubernetes no qual a aplicação está em execução e, em seguida, acrescentar a porta do NodePort. Obtenha o IP do nó do Kubernetes com o seguinte Get-AksEdgeNodeAddrcomando:

Get-AksEdgeNodeAddr -NodeType Windows

Screesnhot a mostrar as informações do cluster do Windows.

Passo 4: verificar o exemplo do Windows em execução

Abra um browser e localize o NodePort para aceder ao seu serviço:

Captura de ecrã a mostrar a aplicação Windows em execução.

Passo 5: limpar

Para limpar, elimine todos os recursos com o seguinte comando:

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

Implementar as suas próprias aplicações

Os passos anteriores mostraram como pode implementar as nossas aplicações de exemplo. Para implementar a sua própria aplicação, faça o seguinte:

  • Empacote a sua aplicação numa imagem de contentor e, em seguida, carregue a imagem para Azure Container Registry ou num registo de contentor à sua escolha. Reveja estes passos para criar uma imagem de contentor da sua aplicação.

  • O AKS Edge Essentials permite clusters de SO misto. Certifique-se de que os pods são agendados em nós com o SO correspondente. Adicione nodeSelector aos seus ficheiros de implementação. Esta opção indica ao Kubernetes para executar os pods em nós de um sistema operativo (SO) específico. Se o cluster for de SO único, pode ignorar este passo; mas, para melhores práticas, identifique cada ficheiro de implementação com seletores de nós:

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

Passos seguintes