Tutorial: Preparación de una aplicación para Azure Kubernetes Service (AKS)Tutorial: Prepare an application for Azure Kubernetes Service (AKS)

En este tutorial, la primera parte de siete, se prepara una aplicación con varios contenedores para usarla en Kubernetes.In this tutorial, part one of seven, a multi-container application is prepared for use in Kubernetes. Las herramientas de desarrollo existentes como Docker Compose se usan para compilar y probar una aplicación localmente.Existing development tools such as Docker Compose are used to locally build and test an application. Aprenderá a:You learn how to:

  • Clonar el origen de una aplicación de ejemplo desde GitHubClone a sample application source from GitHub
  • Crear una imagen de contenedor a partir del origen de la aplicación de ejemploCreate a container image from the sample application source
  • Probar la aplicación con varios contenedores en un entorno local de DockerTest the multi-container application in a local Docker environment

Tras finalizar, la siguiente aplicación se ejecuta en su entorno de desarrollo local:Once completed, the following application runs in your local development environment:

Imagen del clúster de Kubernetes en Azure

En tutoriales adicionales, la imagen de contenedor se carga en una instancia de Azure Container Registry y después se implementa en un clúster de AKS.In additional tutorials, the container image is uploaded to an Azure Container Registry, and then deployed into an AKS cluster.

Antes de empezarBefore you begin

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.This tutorial assumes a basic understanding of core Docker concepts such as containers, container images, and docker commands. Si es necesario, consulte la introducción a Docker, donde encontrará datos básicos acerca de los contenedores.For a primer on container basics, see Get started with Docker.

Para completar este tutorial, se necesita un entorno de desarrollo de Docker local en el que se ejecuten contenedores Linux.To complete this tutorial, you need a local Docker development environment running Linux containers. Docker proporciona paquetes que lo configuran en cualquier sistema Mac, Windows o Linux.Docker provides packages that configure Docker on a Mac, Windows, or Linux system.

Azure Cloud Shell no incluye los componentes de Docker necesarios para completar todos los pasos de este tutorial.Azure Cloud Shell does not include the Docker components required to complete every step in these tutorials. Por lo tanto, se recomienda usar un entorno completo de desarrollo de Docker.Therefore, we recommend using a full Docker development environment.

Obtención del código de la aplicaciónGet application code

La aplicación de ejemplo que se usa en este tutorial es una aplicación básica para votar.The sample application used in this tutorial is a basic voting app. La aplicación consta de un componente web front-end y de una instancia back-end de Redis.The application consists of a front-end web component and a back-end Redis instance. El componente web se empaqueta en una imagen de contenedor personalizada.The web component is packaged into a custom container image. La instancia de Redis usa una imagen sin modificar de Docker Hub.The Redis instance uses an unmodified image from Docker Hub.

Use git para clonar la aplicación en su entorno de desarrollo:Use git to clone the sample application to your development environment:

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

Cambie al directorio clonado.Change into the cloned directory.

cd azure-voting-app-redis

En el directorio se encuentra el código fuente de la aplicación, un archivo de Docker Compose creado previamente y un archivo de manifiesto de Kubernetes.Inside the directory is the application source code, a pre-created Docker compose file, and a Kubernetes manifest file. Estos archivos se usan en todo el conjunto del tutorial.These files are used throughout the tutorial set.

Creación de imágenes de contenedorCreate container images

Docker Compose se puede utilizar para automatizar la creación de imágenes de contenedor y la implementación de aplicaciones con varios contenedores.Docker Compose can be used to automate building container images and the deployment of multi-container applications.

Use el archivo docker-compose.yaml de ejemplo para crear la imagen de contenedor, descargar la imagen de Redis e iniciar la aplicación:Use the sample docker-compose.yaml file to create the container image, download the Redis image, and start the application:

docker-compose up -d

Cuando haya finalizado, use el comando docker images para ver las imágenes creadas.When completed, use the docker images command to see the created images. Se han descargado o creado tres imágenes.Three images have been downloaded or created. La imagen azure-vote-front contiene la aplicación de front-end y usa la imagen nginx-flask como base.The azure-vote-front image contains the front-end application and uses the nginx-flask image as a base. La imagen redis se usa para iniciar una instancia de 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

Ejecute el comando docker ps para ver los contenedores en ejecución: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

Prueba local de la aplicaciónTest application locally

Para ver la aplicación en ejecución, escriba http://localhost:8080 en un explorador web local.To see the running application, enter http://localhost:8080 in a local web browser. Se carga la aplicación de ejemplo, como se muestra en el ejemplo siguiente:The sample application loads, as shown in the following example:

Imagen del clúster de Kubernetes en Azure

Limpieza de recursosClean up resources

Ahora que la funcionalidad de la aplicación se ha validado, los contenedores en ejecución se pueden detener y eliminar.Now that the application's functionality has been validated, the running containers can be stopped and removed. 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).Do not delete the container images - in the next tutorial, the azure-vote-front image is uploaded to an Azure Container Registry instance.

Detenga y quite las instancias de contenedor y los recursos con el comando docker-compose down:Stop and remove the container instances and resources with the docker-compose down command:

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, que podrá usar en el siguiente 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.

Pasos siguientesNext steps

En este tutorial, se ha probado una aplicación y se han creado imágenes del contenedor para la aplicación.In this tutorial, an application was tested and container images created for the application. Ha aprendido a:You learned how to:

  • Clonar el origen de una aplicación de ejemplo desde GitHubClone a sample application source from GitHub
  • Crear una imagen de contenedor a partir del origen de la aplicación de ejemploCreate a container image from the sample application source
  • Probar la aplicación con varios contenedores en un entorno local de DockerTest the multi-container application in a local Docker environment

Pase al siguiente tutorial para aprender a almacenar imágenes de contenedor en Azure Container Registry.Advance to the next tutorial to learn how to store container images in Azure Container Registry.