Partilhar via


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:

Captura de ecrã a mostrar a imagem de contentor que a Aplicação de Voto do Azure em execução localmente abriu num browser 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:

Captura de ecrã a mostrar a imagem de contentor aberta num browser local.

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.