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
Passo 4: verificar os serviços
Para monitorizar o progresso, utilize o comando kubectl get services com o --watch
parâmetro:
kubectl get services
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:
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
Passo 3: verificar se o serviço de exemplo está em execução
kubectl get services
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-AksEdgeNodeAddr
comando:
Get-AksEdgeNodeAddr -NodeType Windows
Passo 4: verificar o exemplo do Windows em execução
Abra um browser e localize o NodePort para aceder ao seu serviç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