Tutorial: Preparación de una aplicación para AKS
Se aplica a: AKS en Azure Local 22H2, AKS en Windows Server
En este tutorial, la primera parte de siete, se prepara una aplicación de varios contenedores para su uso en un clúster de Kubernetes cuando se usa Azure Kubernetes Service habilitado por Azure Arc. Las herramientas de desarrollo existentes, como Docker Compose, se usan para compilar y probar una aplicación localmente.
Aprenderá a:
- Clonar la fuente de una aplicación de ejemplo desde GitHub
- Creación de una imagen de contenedor a partir del origen de la aplicación de ejemplo
- Prueba de la aplicación de varios contenedores en un entorno de Docker local
Una vez completada, la aplicación siguiente se ejecuta en el entorno de desarrollo local:
En tutoriales posteriores, la imagen de contenedor se carga en una instancia de Azure Container Registry y, a continuación, se implementa en un clúster de Kubernetes.
Antes de empezar
En este tutorial se presupone un conocimiento básico de los conceptos básicos de Docker, como contenedores, imágenes de contenedor y comandos de docker
. Para obtener información básica sobre los conceptos básicos del contenedor, consulte Introducción a Docker.
Para completar este tutorial, necesita un entorno de desarrollo de Docker local que ejecute contenedores de Linux. Docker proporciona paquetes que configuran Docker en Windows.
Nota
AKS no incluye los componentes de Docker necesarios para completar todos los pasos de estos tutoriales. Por lo tanto, se recomienda usar un entorno de desarrollo completo de Docker.
Obtención del código de la aplicación
La aplicación de ejemplo usada en este tutorial es una aplicación de votación básica que consta de un componente web front-end y una instancia de Redis de back-end. El componente web se empaqueta en una imagen de contenedor personalizada. La instancia de Redis usa una imagen sin modificar de Docker Hub.
Usa GitHub para clonar la aplicación de ejemplo en tu entorno de desarrollo:
git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Cambie al directorio clonado:
cd azure-voting-app-redis
Dentro del directorio se encuentra el código fuente de la aplicación, un archivo docker compose creado previamente y un archivo de manifiesto de Kubernetes. Estos archivos se usan en todo el conjunto de tutoriales. 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
Puede usar docker Compose para automatizar la creación de imágenes de contenedor y la implementación de aplicaciones de varios contenedores.
Use 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 imágenes de Docker para ver las imágenes creadas. Se descargaron o crearon 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, escriba http://localhost:8080
en un explorador web local. La aplicación de ejemplo se carga, como se muestra en el ejemplo siguiente:
Limpieza de recursos
Ahora que se valida la funcionalidad de la aplicación, los contenedores en ejecución se pueden detener y quitar. No elimine las imágenes de contenedor: en el siguiente tutorial, la imagen azure-vote-front se carga en una instancia de Azure Container Registry.
Detenga y quite las instancias de contenedor y los recursos con el comando docker-compose down:
docker-compose down
Al quitar la aplicación local, tiene una imagen de Docker que contiene la aplicación Azure Vote, azure-vote-front, para su uso con el siguiente tutorial.
Pasos siguientes
En este tutorial, se probó una aplicación y se crearon imágenes de contenedor para la aplicación. Ha aprendido a:
- Clona un ejemplo de fuente de aplicación desde GitHub
- Creación de una imagen de contenedor a partir del origen de la aplicación de ejemplo
- Prueba de la aplicación de varios contenedores en un entorno de Docker local
Pase al siguiente tutorial para aprender a almacenar imágenes de contenedor en Azure Container Registry.