Tutorial: Preparar uma candidatura para o Serviço Azure Kubernetes no Azure Stack HCI

Neste tutorial, a parte um de sete, uma aplicação de contentores múltiplos é preparada para utilização com o Kubernetes. As ferramentas de desenvolvimento existentes, como o Docker Compose são utilizadas para criar e testar uma aplicação localmente. 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:

This image shows the container image that the Azure Voting App running locally opened in a local web browser

Em tutoriais posteriores, a imagem do contentor é enviada para um registo de contentores Azure, e depois implantada num serviço Azure Kubernetes no cluster HCI da Azure Stack.

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. Docker fornece pacotes que configuram Docker em um Windows.

Nota

O Serviço Azure Kubernetes no Azure Stack HCI não inclui os componentes Docker necessários para completar cada passo 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 amostra utilizada neste tutorial é uma aplicação de voto básica composta por um componente web frontal e uma 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 git para clonar o exemplo de aplicação 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. O conteúdo 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

O Docker Compose pode servir para automatizar a compilação de imagens de contentor e a implementação de aplicações com 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 frontal e usa a imagem nginx-lúdola como base. A imagem redis é usada para iniciar uma instância 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

Executar o comando do PS para ver os contentores de funcionamento:

$ 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:

Screenshot showing the container image that hte Azure Voting App running locally opened in a local web browser

Limpar os recursos

Agora que a funcionalidade da aplicação foi validada, os contentores em execução podem ser parados e removidos. Não apague as imagens do recipiente - no próximo tutorial, a imagem da frente de voto azul é enviada para uma instância do Registo do Contentor Azure.

Pare e remova as instâncias de contentor e os recursos com o comando docker-compose down:

docker-compose down

Quando a aplicação local for removida, você tem uma imagem docker que contém o pedido de voto Azure, azure-vote-front, para ser usado 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.