Tutorial: Preparar um aplicativo para o AKS (Serviço de Kubernetes do Azure)Tutorial: Prepare an application for Azure Kubernetes Service (AKS)

Neste tutorial, parte um de sete, um aplicativo de vários contêineres é preparado para uso em Kubernetes.In this tutorial, part one of seven, a multi-container application is prepared for use in Kubernetes. As ferramentas de desenvolvimento existentes, como o Docker Compose, são usadas para compilar e testar aplicativos localmente.Existing development tools such as Docker Compose are used to locally build and test an application. Você aprenderá como:You learn how to:

  • Clonar a origem do aplicativo de exemplo do GitHubClone a sample application source from GitHub
  • Criar uma imagem de contêiner a partir da origem do aplicativo de exemploCreate a container image from the sample application source
  • Testar o aplicativo de vários contêineres em um ambiente Docker localTest the multi-container application in a local Docker environment

Uma vez concluído, o seguinte aplicativo será executado em seu ambiente de desenvolvimento local:Once completed, the following application runs in your local development environment:

Imagem do cluster Kubernetes no Azure

Em tutoriais adicionais, a imagem de contêiner será carregada para um Registro de Contêiner do Azure e, em seguida, implantada em um cluster AKS.In additional tutorials, the container image is uploaded to an Azure Container Registry, and then deployed into an AKS cluster.

Antes de começarBefore you begin

Este tutorial assume uma compreensão básica dos conceitos fundamentais do Docker como contêineres, imagens de contêiner e comandos do docker.This tutorial assumes a basic understanding of core Docker concepts such as containers, container images, and docker commands. Consulte Introdução ao Docker para conhecer os conceitos básicos de contêiner.For a primer on container basics, see Get started with Docker.

Para concluir este tutorial, você precisa de um ambiente de desenvolvimento local do Docker que executa contêineres do Linux.To complete this tutorial, you need a local Docker development environment running Linux containers. O Docker fornece pacotes que o configuram facilmente em qualquer sistema Mac, Windows ou Linux.Docker provides packages that configure Docker on a Mac, Windows, or Linux system.

O Azure Cloud Shell não inclui os componentes do Docker necessários para concluir as etapas destes tutoriais.Azure Cloud Shell does not include the Docker components required to complete every step in these tutorials. Portanto, é recomendável usar um ambiente de desenvolvimento completo do Docker.Therefore, we recommend using a full Docker development environment.

Obter o código de aplicativoGet application code

O aplicativo de exemplo usado neste tutorial é um aplicativo de votação básico.The sample application used in this tutorial is a basic voting app. O aplicativo consiste de um componente Web de front-end e uma instância Redis de back-end.The application consists of a front-end web component and a back-end Redis instance. O componente Web é empacotado em uma imagem de contêiner personalizada.The web component is packaged into a custom container image. A instância Redis utiliza uma imagem não modificada do Hub Docker.The Redis instance uses an unmodified image from Docker Hub.

Use o git para clonar o aplicativo de exemplo para seu ambiente de desenvolvimento:Use git to clone the sample application to your development environment:

git clone https://github.com/Azure-Samples/azure-voting-app-redis.git

Altere para o diretório clonado.Change into the cloned directory.

cd azure-voting-app-redis

Dentro do diretório está o código-fonte do aplicativo, um arquivo Docker Compose pré-criado e um arquivo de manifesto Kubernetes.Inside the directory is the application source code, a pre-created Docker compose file, and a Kubernetes manifest file. Esses arquivos são usados em todo o conjunto do tutorial.These files are used throughout the tutorial set.

Criar imagens de contêinerCreate container images

O Docker Compose pode ser usado para automatizar a compilação de imagens de contêiner e a implantação de aplicativos de vários contêineres.Docker Compose can be used to automate building container images and the deployment of multi-container applications.

Execute o arquivo docker-compose.yaml de exemplo para criar a imagem de contêiner, baixar a imagem Redis e iniciar o aplicativo:Use the sample docker-compose.yaml file to create the container image, download the Redis image, and start the application:

docker-compose up -d

Quando completado, use o comando docker images para ver as imagens criadas.When completed, use the docker images command to see the created images. Três imagens foram baixadas ou criadas.Three images have been downloaded or created. A imagem azure-vote-front contém o aplicativo de front-end e usa a imagem nginx-flask como base.The azure-vote-front image contains the front-end application and uses the nginx-flask image as a base. A imagem redis é usada para iniciar uma instância do Redis.The redis image is used to start a Redis instance.

$ docker images

REPOSITORY                   TAG        IMAGE ID            CREATED             SIZE
azure-vote-front             latest     9cc914e25834        40 seconds ago      694MB
redis                        latest     a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask   flask      788ca94b2313        9 months ago        694MB

Execute o comando docker ps para ver os contêineres em execução:Run the docker ps command to see the running containers:

$ docker ps

CONTAINER ID        IMAGE             COMMAND                  CREATED             STATUS              PORTS                           NAMES
82411933e8f9        azure-vote-front  "/usr/bin/supervisord"   57 seconds ago      Up 30 seconds       443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
b68fed4b66b6        redis             "docker-entrypoint..."   57 seconds ago      Up 30 seconds       0.0.0.0:6379->6379/tcp          azure-vote-back

Testar o aplicativo localmenteTest application locally

Para ver o aplicativo em execução, insira http://localhost:8080 em um navegador da Web local.To see the running application, enter http://localhost:8080 in a local web browser. O aplicativo de exemplo é carregado, conforme mostra o exemplo a seguir:The sample application loads, as shown in the following example:

Imagem do cluster Kubernetes no Azure

Limpar recursosClean up resources

Agora que a funcionalidade do aplicativo foi validada, os contêineres em execução podem ser interrompidos e removidos.Now that the application's functionality has been validated, the running containers can be stopped and removed. Não exclua as imagens do contêiner. No próximo tutorial, a imagem azure-vote-front será carregada em uma instância do Registro de Contêiner do Azure.Do not delete the container images - in the next tutorial, the azure-vote-front image is uploaded to an Azure Container Registry instance.

Pare e remova as instâncias de contêiner e os recursos com o comando docker-compose down:Stop and remove the container instances and resources with the docker-compose down command:

docker-compose down

Quando o aplicativo local tiver sido removido, você terá uma imagem do Docker que contém o aplicativo Azure Vote, azure-vote-front, para usar no próximo tutorial.When the local application has been removed, you have a Docker image that contains the Azure Vote application, azure-vote-front, for use with the next tutorial.

Próximas etapasNext steps

Neste tutorial, um aplicativo foi testado e imagens de contêiner foram criadas para o aplicativo.In this tutorial, an application was tested and container images created for the application. Você aprendeu como:You learned how to:

  • Clonar a origem do aplicativo de exemplo do GitHubClone a sample application source from GitHub
  • Criar uma imagem de contêiner a partir da origem do aplicativo de exemploCreate a container image from the sample application source
  • Testar o aplicativo de vários contêineres em um ambiente Docker localTest the multi-container application in a local Docker environment

Avance para o próximo tutorial para saber como armazenar imagens de contêiner em um Registro de Contêiner do Azure.Advance to the next tutorial to learn how to store container images in Azure Container Registry.