Tutorial: Preparar uma aplicação para o AKS
Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server
Neste tutorial, parte um de sete, uma aplicação de vários contentores é preparada para utilização num cluster do Kubernetes quando estiver a utilizar Azure Kubernetes Service ativada pelo Azure Arc. As ferramentas de desenvolvimento existentes, como o Docker Compose, são utilizadas para criar e testar localmente uma aplicação.
Saiba como:
- Clonar uma origem de exemplo de aplicação a partir do GitHub
- Criar uma imagem de contentor a partir da origem de exemplo de aplicação
- Testar a aplicação de vários contentores num ambiente local do Docker
Depois de concluída, a aplicação seguinte é executada no seu ambiente de desenvolvimento local:
Em tutoriais posteriores, a imagem de contentor é carregada para um Azure Container Registry e, em seguida, implementada num cluster do Kubernetes.
Antes de começar
Este tutorial pressupõe conhecimentos básicos dos principais conceitos do Docker, como contentores, imagens de contentor e comandos do docker
. Para obter noções básicas sobre os contentores, veja Introdução ao Docker.
Para concluir este tutorial, precisa de um ambiente de desenvolvimento local do Docker que execute contentores do Linux. O Docker fornece pacotes que configuram o Docker no Windows.
Nota
O AKS não inclui os componentes do Docker necessários para concluir todos os passos nestes tutoriais. Por conseguinte, recomendamos a utilização de um ambiente de desenvolvimento completo do Docker.
Obter o código da aplicação
A aplicação de exemplo utilizada neste tutorial é uma aplicação de votação básica que consiste num componente Web de front-end e numa instância redis de back-end. O componente Web é compactado numa imagem personalizada de contentor. A instância do Redis utiliza uma imagem inalterada do Hub do Docker.
Utilize o GitHub para clonar a aplicação de exemplo para o seu ambiente de desenvolvimento:
git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Mude para o diretório clonado:
cd azure-voting-app-redis
Dentro do diretório estão: o código de origem da aplicação, um ficheiro de composição do Docker e um ficheiro de manifesto do Kubernetes. Estes ficheiros são utilizados em todo o tutorial. Os conteúdos e a estrutura do diretório são os seguintes:
azure-voting-app-redis
│ azure-vote-all-in-one-redis.yaml
│ docker-compose.yaml
│ LICENSE
│ README.md
│
├───azure-vote
│ │ app_init.supervisord.conf
│ │ Dockerfile
│ │ Dockerfile-for-app-service
│ │ sshd_config
│ │
│ └───azure-vote
│ │ config_file.cfg
│ │ main.py
│ │
│ ├───static
│ │ default.css
│ │
│ └───templates
│ index.html
│
└───jenkins-tutorial
config-jenkins.sh
deploy-jenkins-vm.sh
Criar imagens de contentor
Pode utilizar o Docker Compose para automatizar a criação de imagens de contentor e a implementação de aplicações de vários contentores.
Utilize o ficheiro docker-compose.yaml
de exemplo para criar a imagem de contentor, transferir a imagem de Redis e iniciar a aplicação:
docker-compose up -d
Ao concluir, utilize o comando docker images para ver as imagens criadas. Foram transferidas ou criadas três imagens. A imagem azure-vote-front contém a aplicação de front-end e utiliza a imagem nginx-flask como base. A imagem de redis é utilizada para iniciar uma instância de Redis.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mcr.microsoft.com/azuredocs/azure-vote-front v1 84b41c268ad9 9 seconds ago 944MB
mcr.microsoft.com/oss/bitnami/redis 6.0.8 3a54a920bb6c 2 days ago 103MB
tiangolo/uwsgi-nginx-flask python3.6 a16ce562e863 6 weeks ago 944MB
Execute o comando docker ps para ver os contentores em execução:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d10e5244f237 mcr.microsoft.com/azuredocs/azure-vote-front:v1 "/entrypoint.sh /sta…" 3 minutes ago Up 3 minutes 443/tcp, 0.0.0.0:8080->80/tcp azure-vote-front
21574cb38c1f mcr.microsoft.com/oss/bitnami/redis:6.0.8 "/opt/bitnami/script…" 3 minutes ago Up 3 minutes 0.0.0.0:6379->6379/tcp azure-vote-back
Testar a aplicação localmente
Para ver a aplicação em execução, introduza http://localhost:8080
num navegador Web local. O exemplo de aplicação é carregado, conforme mostrado no exemplo seguinte:
Limpar os recursos
Agora que a funcionalidade da aplicação é validada, os contentores em execução podem ser parados e removidos. Não elimine as imagens de contentor – no próximo tutorial, a imagem azure-vote-front é carregada para uma instância de Azure Container Registry.
Pare e remova as instâncias de contentor e os recursos com o comando docker-compose down:
docker-compose down
Quando remove a aplicação local, tem uma imagem do Docker que contém a aplicação Azure Vote, azure-vote-front, para utilização com o próximo tutorial.
Passos seguintes
Neste tutorial, uma aplicação foi testada e imagens de contentor foram criadas para a aplicação. Aprendeu a:
- Clonar uma origem de exemplo de aplicação a partir do GitHub
- Criar uma imagem de contentor a partir da origem de exemplo de aplicação
- Testar a aplicação de vários contentores num ambiente local do Docker
Avance para o próximo tutorial para saber como armazenar imagens de contentores no Azure Container Registry.