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, 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
  • Pruebe la aplicación.

En tutoriales posteriores, escalará horizontalmente la aplicación y la actualizará.

En esta guía rápida, se da por supuesto que tiene 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).

Sugerencia

Los clústeres de AKS pueden utilizar GitOps para la administración de configuración. GitOp permite que las declaraciones del estado del clúster, que se insertan en el control de código fuente, se apliquen automáticamente al clúster. Para más información sobre cómo usar GitOps para implementar una aplicación con un clúster de AKS, consulte los requisitos previos para clústeres de Azure Kubernetes Service en el tutorial GitOps con Flux v2.

Antes de empezar

En los tutoriales anteriores, empaquetó una aplicación en una imagen de contenedor, cargó la imagen en Azure Container Registry y 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. El código fuente de la aplicación incluía esta descarga de archivo en un tutorial anterior. Confirme que clonó el repositorio y que cambió los directorios del repositorio clonado. Si no ha seguido estos pasos, pero desea aplicarlos, comience con el Tutorial 1: Preparación de una aplicación para AKS.

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.

Use el comando az acr list para obtener el nombre del servidor de inicio de sesión de ACR.

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

El archivo de manifiesto de ejemplo del repositorio git que clonó en el primer tutorial usa las imágenes de Microsoft Container Registry (mcr.microsoft.com). Asegúrese de que está en el directorio clonado azure-voting-app-redis y, luego, abra el archivo de manifiesto con un editor de texto, como vi:

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

Reemplace mcr.microsoft.com por el nombre del servidor de inicio de sesión de ACR. Puede encontrar el nombre de la imagen 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 y especifique el archivo de manifiesto de ejemplo. Este comando analiza el archivo de manifiesto y crea los objetos de Kubernetes definidos.

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 aparece 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 carga la aplicación, es posible que haya 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 no puede extraer las imágenes del contenedor, consulte Autenticación con Azure Container Registry desde Azure Kubernetes Service.

Pasos siguientes

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

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

En el tutorial siguiente, aprenderá a escalar una aplicación Kubernetes y la infraestructura de Kubernetes subyacente.