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:

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.

  1. 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
    
  2. 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
    
  3. 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
    ...
    
  4. Guarde y cierre el archivo. En vi, use :wq.

Ejecución de la aplicación

  1. 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
    
  2. 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

  1. 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
    
  2. Cuando la dirección EXTERNAL-IPcambie 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:

    store-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s
    
  3. Para ver la aplicación en acción, abra un explorador web en la dirección IP externa del servicio.

    Captura de pantalla de la aplicación de ejemplo de la Tienda AKS.

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.

  1. Abra su Grupo de recursos en Azure Portal

  2. Vaya al servicio Kubernetes para el clúster

  3. Seleccione Services and Ingress en Kubernetes Resources

  4. Copie la IP externa que se muestra en la columna para la tienda

  5. Pegue la dirección IP en el explorador y visite la página de la tienda

    Captura de pantalla de la aplicación de ejemplo de la Tienda AKS.

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.