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
aks-store-quickstart.yaml
con un editor de texto.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.
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:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins 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 serviciostore-front
aparece como<pending>
:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
Cuando la dirección
EXTERNAL-IP
cambie de<pending>
a una dirección IP pública, 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 y vaya a la dirección IP externa del servicio:
http://<external-ip>
.
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
Navegue hasta Azure Portal para encontrar la información sobre su implementación.
Vaya a su recurso de clúster AKS.
En el menú de servicios, en Recursos Kubernetes, seleccione Servicios e ingresos.
Copie la IP externa que aparece en la columna correspondiente al servicio
store-front
.Pegue la IP en su navegador para visitar la página de la tienda.
Limpieza de recursos
Puesto que validó la funcionalidad de la aplicación, ahora puede quitar el clúster de la aplicación. Volveremos a implementar la aplicación en el siguiente tutorial.
Para detener y quitar las instancias de contenedor y los recursos, use el comando
kubectl delete
.kubectl delete -f aks-store-quickstart.yaml
Compruebe que se han eliminado todos los pods de aplicación mediante el comando
kubectl get pods
.kubectl get pods
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.
Azure Kubernetes Service