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:
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.