Tutorial: Ejecución de aplicaciones en Azure Kubernetes Service (AKS)

Kubernetes proporciona una plataforma distribuida para aplicaciones en contenedores. Compile e implemente sus propios servicios y aplicaciones en un clúster de Kubernetes, y deje que el clúster administre la disponibilidad y conectividad. En este tutorial, la cuarta parte de siete, se implementa una aplicación de ejemplo en un clúster de Kubernetes. Aprenderá a:

  • Actualizar los archivos de manifiesto de Kubernetes
  • Ejecutar una aplicación en Kubernetes
  • Prueba de la aplicación

En tutoriales posteriores, esta aplicación se escala horizontalmente y se actualiza.

En esta guía rápida se presupone un conocimiento básico de los conceptos de Kubernetes. Para más información, consulte Conceptos básicos de Kubernetes de Azure Kubernetes Service (AKS).

Antes de empezar

En tutoriales anteriores se empaquetó una aplicación en una imagen de contenedor, se cargó esta imagen en Azure Container Registry y se creó un clúster de Kubernetes.

Para completar este tutorial, necesita el archivo de manifiesto de Kubernetes azure-vote-all-in-one-redis.yaml creado previamente. Este archivo se descargó con el código fuente de la aplicación en un tutorial anterior. Confirme que ha clonado el repositorio y que ha cambiado los directorios en el repositorio clonado. Si no ha realizado estos pasos, pero quiere continuar, comience con el Tutorial 1: Creación de imágenes de contenedor.

Para realizar este tutorial es necesario ejecutar la versión 2.0.53, o superior, de la CLI de Azure. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Actualización del archivo de manifiesto

En estos tutoriales, una instancia de Azure Container Registry (ACR) almacena la imagen del contenedor de la aplicación de ejemplo. Para implementar la aplicación, debe actualizar el nombre de la imagen en el archivo de manifiesto de Kubernetes para incluir el nombre del servidor de inicio de sesión de ACR.

Para obtener el nombre del servidor de inicio de sesión de ACR se usa el comando az acr list, como se muestra a continuación:

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

El archivo de manifiesto de ejemplo del repositorio git clonado en el primer tutorial usa el nombre de servidor de inicio de sesión microsoft. Asegúrese de que está en el directorio clonaod azure-voting-app-redis y abra el archivo de manifiesto con un editor de texto, como vi:

vi azure-vote-all-in-one-redis.yaml

Reemplace microsoft por el nombre del servidor de inicio de sesión de ACR. El nombre de la imagen aparece en la línea 60 del archivo de manifiesto. En el ejemplo siguiente se muestra el nombre de imagen predeterminado:

containers:
- name: azure-vote-front
  image: mcr.microsoft.com/azuredocs/azure-vote-front:v1

Especifique su propio nombre del servidor de inicio de sesión de ACR para que el archivo de manifiesto sea parecido al del ejemplo siguiente:

containers:
- name: azure-vote-front
  image: <acrName>.azurecr.io/azure-vote-front:v1

Guarde y cierre el archivo. En vi, use :wq.

Implementación de la aplicación

Para implementar la aplicación, use el comando kubectl apply. Este comando analiza el archivo de manifiesto y crea los objetos de Kubernetes definidos. Especifique el archivo de manifiesto de ejemplo, como se muestra en el ejemplo siguiente:

kubectl apply -f azure-vote-all-in-one-redis.yaml

La salida de ejemplo siguiente muestra los recursos que se crearon correctamente en el clúster de AKS:

$ kubectl apply -f azure-vote-all-in-one-redis.yaml

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

Prueba de la aplicación

Cuando se ejecuta la aplicación, un servicio de Kubernetes expone el front-end de la aplicación a Internet. Este proceso puede tardar unos minutos en completarse.

Para supervisar el progreso, utilice el comando kubectl get service con el argumento --watch.

kubectl get service azure-vote-front --watch

En un primer momento, el parámetro EXTERNAL-IP del servicio azure-vote-front se muestra como pendiente:

azure-vote-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s

Cuando la dirección EXTERNAL-IP cambie de pendiente a una dirección IP pública real, use CTRL-C para detener el proceso de inspección de kubectl. En la salida del ejemplo siguiente se muestra una dirección IP pública válida asignada al servicio:

azure-vote-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s

Para ver la aplicación en acción, abra un explorador web en la dirección IP externa del servicio:

Captura de pantalla que muestra la imagen de contenedor de Azure Voting App que se ejecuta en un clúster de AKS abierto en un explorador web local.

Si no se cargó la aplicación, esto se puede deber a un problema de autorización con el registro de la imagen. Para ver el estado de los contenedores, use el comando kubectl get pods. Si las imágenes del contenedor no se pueden extraer, consulte Autenticación con Azure Container Registry desde Azure Kubernetes Service.

Pasos siguientes

En este tutorial, una instancia de la aplicación Azure Vote de ejemplo se implementó en un clúster de Kubernetes en AKS. Ha aprendido a:

  • Actualizar los archivos de manifiesto de Kubernetes
  • Ejecutar una aplicación en Kubernetes
  • Prueba de la aplicación

Pase al siguiente tutorial para aprender a escalar una aplicación Kubernetes y la infraestructura de Kubernetes subyacente.