Tutorial: Implementación de una aplicación 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.
Sugerencia
Con AKS, puede usar los siguientes enfoques para administrar la configuración:
GitOps: permite aplicar automáticamente al clúster las declaraciones sobre su estado. 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.
DevOps: permite compilar, probar e implementar código con integración y entrega continuas (CI/CD). Si desea ver ejemplos de cómo usar DevOps para implementar una aplicación con un clúster de AKS, consulte Compilación e implementación en Azure Kubernetes Service con Azure Pipelines o Compilación, prueba e implementación de contenedores en Azure Kubernetes Service (AKS) mediante Acciones de GitHub.
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 aks-store-quickstart.yaml
creado previamente. Este archivo se descargó en el código fuente de la aplicación de Tutorial 1: Preparación de la aplicación para AKS.
Para realizar este tutorial es necesaria la versión 2.0.53 o superior de la CLI de Azure. Compruebe su versión con az --version
. Para la instalación o la actualización, consulte Instalación de la CLI de Azure.
Actualización del archivo de manifiesto
En estos tutoriales, la instancia de Azure Container Registry (ACR) almacena la imagen de 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.
Obtenga la dirección del servidor de inicio de sesión con el comando
az acr list
y consulte el servidor de inicio de sesión.az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
Asegúrese de que está en el directorio clonado aks-store-demo y abra el archivo de manifiesto con un editor de texto, como
vi
.vi aks-store-quickstart.yaml
Actualice la propiedad
image
de los contenedores reemplazando ghcr.io/azure-samples por el nombre del servidor de inicio de sesión de ACR.containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
Guarde y cierre el archivo. En
vi
, use:wq
.
Ejecución de la aplicación
Implemente la aplicación con el comando
kubectl apply
, que analiza el archivo de manifiesto y crea los objetos de Kubernetes definidos.kubectl apply -f aks-store-quickstart.yaml
La salida de ejemplo siguiente muestra los recursos que se crearon correctamente en el clúster de AKS:
deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Compruebe que la implementación se realiza correctamente mediante la visualización de los pods con
kubectl
kubectl get pods
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.
Línea de comandos
Para supervisar el progreso, utilice el comando
kubectl get service
con el argumento--watch
.kubectl get service store-front --watch
En un primer momento, el parámetro
EXTERNAL-IP
del servicio store-front aparece como pendiente:store-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, useCTRL-C
para detener el proceso de inspección dekubectl
.En la salida del ejemplo siguiente se muestra una dirección IP pública válida asignada al servicio:
store-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 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.
Azure portal
Vaya a Azure Portal para buscar la información de implementación.
Abra su Grupo de recursos en Azure Portal
Vaya al servicio Kubernetes para el clúster
Seleccione
Services and Ingress
enKubernetes Resources
Copie la IP externa que se muestra en la columna para la tienda
Pegue la dirección IP en el explorador y visite la página de la tienda
Pasos siguientes
En este tutorial ha implementado una aplicación 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 siguiente tutorial aprenderá a usar los servicios PaaS para cargas de trabajo con estado en Kubernetes.