Tutorial: Preparación de una aplicación para Azure Kubernetes Service (AKS)
En este tutorial, la primera parte de siete, se prepara una aplicación con varios contenedores para usarla en Kubernetes. Puede usar herramientas de desarrollo existentes, como Docker Compose, para compilar y probar la aplicación localmente. Aprenderá a:
- Clonar el origen de una aplicación de ejemplo desde GitHub
- Crear una imagen de contenedor a partir del origen de la aplicación de ejemplo
- Probar la aplicación con varios contenedores en un entorno local de Docker
Tras finalizar, la siguiente aplicación se ejecuta en su entorno de desarrollo local:
En tutoriales posteriores, la imagen de contenedor se carga en una instancia de Azure Container Registry (ACR) y después se implementa en un clúster de AKS.
Antes de empezar
En este tutorial se asume que el usuario tiene un conocimiento básico de los principales conceptos de Docker, como los contenedores, las imágenes de contenedor y los comandos de docker
. Si es necesario, consulte la introducción a Docker, donde encontrará datos básicos acerca de los contenedores.
Para completar este tutorial, se necesita un entorno de desarrollo de Docker local en el que se ejecuten contenedores Linux. Docker proporciona paquetes que lo configuran en cualquier sistema Mac, Windows o Linux.
Nota
Azure Cloud Shell no incluye los componentes de Docker necesarios para completar todos los pasos de este tutorial. Por lo tanto, se recomienda usar un entorno completo de desarrollo de Docker.
Obtención del código de la aplicación
La aplicación de ejemplo que se usa en este tutorial es una aplicación de votación básica, con un componente web front-end y una instancia back-end de Redis. El componente web se empaqueta en una imagen de contenedor personalizada. La instancia de Redis usa una imagen sin modificar de Docker Hub.
Use git para clonar la aplicación en su entorno de desarrollo.
git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Cambie al directorio clonado.
cd azure-voting-app-redis
El directorio incluye el código fuente de la aplicación, un archivo de Docker Compose creado previamente y un archivo de manifiesto de Kubernetes. Estos archivos se usan en todo el conjunto del tutorial. El contenido y la estructura del directorio son los siguientes:
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
Creación de imágenes de contenedor
Docker Compose se puede utilizar para automatizar la creación de imágenes de contenedor y la implementación de aplicaciones con varios contenedores.
El comando siguiente usa el archivo docker-compose.yaml
de ejemplo para crear la imagen de contenedor, descargar la imagen de Redis e iniciar la aplicación.
docker-compose up -d
Cuando haya finalizado, use el comando docker images
para ver las imágenes creadas. Se han descargado o creado tres imágenes. La imagen azure-vote-front contiene la aplicación de front-end y usa la imagen nginx-flask como base. La imagen redis se usa para iniciar una instancia 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
Ejecute el comando docker ps
para ver los contenedores en ejecución.
$ 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
Prueba local de la aplicación
Para ver la aplicación en ejecución, vaya a http://localhost:8080
en un explorador web local. Se carga la aplicación de ejemplo, como se muestra en el ejemplo siguiente:
Limpieza de recursos
Ahora que la funcionalidad de la aplicación se ha validado, los contenedores en ejecución se pueden detener y eliminar. No elimine las imágenes de contenedor: en el tutorial siguiente, la imagen azure-vote-front se cargará en una instancia de ACR.
Para detener y quitar las instancias de contenedor y los recursos, use el comando docker-compose down
.
docker-compose down
Cuando se haya quitado la aplicación local, tendrá una imagen de Docker con la aplicación Azure Vote, azure-vote-front, para usarla en el tutorial siguiente.
Pasos siguientes
En este tutorial, ha creado una aplicación de ejemplo e imágenes de contenedor para la aplicación y, después, ha probado la aplicación. Ha aprendido a:
- Clonar el origen de una aplicación de ejemplo desde GitHub
- Crear una imagen de contenedor a partir del origen de la aplicación de ejemplo
- Probar la aplicación con varios contenedores en un entorno local de Docker
En el tutorial siguiente, descubrirá cómo almacenar imágenes de contenedor en una instancia de ACR.