Tutorial: Actualización de una aplicación en AKS habilitada por Azure Arc

Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server

Después de implementar una aplicación en Kubernetes mediante AKS habilitado por Arc, puede actualizarla especificando una nueva imagen de contenedor o una versión de imagen. Debe agregar al "stage" una actualización para que solo una parte de la implementación se actualice al mismo tiempo. Esta actualización preconfigurada permite que la aplicación siga ejecutándose durante la actualización. También proporciona un mecanismo de reversión si se produce un error de implementación.

En este tutorial (parte seis de siete), se describe cómo actualizar la aplicación Azure Vote de ejemplo. Aprenderá a:

  • Actualizar el código de la aplicación de front-end
  • Crear una imagen de contenedor actualizada
  • Insertar una imagen de contenedor en Azure Container Registry
  • Implementar la imagen de contenedor actualizada

Antes de empezar

En tutoriales anteriores, aprendió a:

  • Empaquetar una aplicación en una imagen de contenedor y cargar la imagen en Azure Container Registry.
  • Cree un clúster de Kubernetes en Azure Stack HCI e implemente la aplicación en el clúster.
  • Clonar un repositorio de aplicaciones que incluye el código fuente de la aplicación y un archivo de Docker Compose creado previamente que se usa en este tutorial.

Compruebe que ha creado un clon del repositorio y ha cambiado los directorios en el directorio clonado. Si no ha finalizado estos pasos, comience con el Tutorial 1: Creación de imágenes de contenedor.

Este tutorial requiere que ejecute la CLI de Azure versión 2.0.53 o posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Actualización de una aplicación

En esta sección se describe cómo realizar un cambio en la aplicación de ejemplo y, a continuación, actualizar la versión ya implementada en el clúster de AKS. Asegúrese de que está en el directorio clonado azure-voting-app-redis. El código fuente de la aplicación de ejemplo se puede encontrar en el directorio azure-vote. Abra el archivo config_file.cfg con un editor, como el Bloc de notas:

notepad azure-vote/azure-vote/config_file.cfg

Cambie los valores de VOTE1VALUE y VOTE2VALUE a valores diferentes, como los colores. En el ejemplo siguiente se muestran los valores actualizados:

# UI Configurations
TITLE = 'Azure Voting App'
VOTE1VALUE = 'Blue'
VOTE2VALUE = 'Purple'
SHOWHOST = 'false'

Guarde y cierre el archivo.

Actualización de la imagen del contenedor

Para volver a crear la imagen del front-end y probar la aplicación actualizada, use docker-compose. El --build argumento se usa para volver a crear la imagen de la aplicación:

docker-compose up --build -d

Prueba de la aplicación de forma local

Para comprobar que la imagen de contenedor actualizada muestra los cambios, abra un explorador web local en http://localhost:8080.

Captura de pantalla que muestra un ejemplo de la imagen de contenedor actualizada de Azure Voting App, que se ejecuta localmente, abierta en un explorador web local.

Los valores actualizados proporcionados en config_file.cfg se muestran en la aplicación en ejecución.

Etiquetado e inserción de la imagen

Para usar correctamente la imagen actualizada, etiquete la imagen azure-vote-front con el nombre del servidor de inicio de sesión de la instancia de Azure Container Registry. Para obtener el nombre del servidor de inicio de sesión, use el comando az acr list:

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

Use la docker tag para etiquetar la imagen. Reemplace por <acrLoginServer> el nombre del servidor de inicio de sesión del registro de contenedor o el nombre de host del registro público y actualice la versión de la imagen a la versión v2, como se indica a continuación:

docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v2

Ahora use docker push para cargar la imagen en el registro. Reemplace <acrLoginServer> por el nombre del servidor de inicio de sesión de Azure Container Registry.

Nota

Si experimenta problemas al insertar en el registro de contenedor, asegúrese de que todavía ha iniciado sesión. Ejecute el comando az acr login y use el nombre de la instancia de Azure Container Registry que creó en el paso Creación de una instancia de Azure Container Registry. Por ejemplo, az acr login --name <azure container registry name>.

docker push <acrLoginServer>/azure-vote-front:v2

Implementación de la aplicación actualizada

Para proporcionar el tiempo máximo de actividad, debe ejecutar varias instancias del pod de aplicación. Compruebe el número de instancias de front-end en ejecución con el comando kubectl get pods:

$ kubectl get pods

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-217588096-5w632    1/1       Running   0          10m
azure-vote-front-233282510-b5pkz   1/1       Running   0          10m
azure-vote-front-233282510-dhrtr   1/1       Running   0          10m
azure-vote-front-233282510-pqbfk   1/1       Running   0          10m

Si no tiene varios pods de front-end, escale la implementación de azure-vote-front de la manera siguiente:

kubectl scale --replicas=3 deployment/azure-vote-front

Use el comando kubectl set para actualizar la aplicación. Actualice <acrLoginServer> con el nombre de host o de servidor de inicio de sesión del registro del contenedor y especifique la versión de la aplicación v2:

kubectl set image deployment azure-vote-front azure-vote-front=<acrLoginServer>/azure-vote-front:v2

Para supervisar la implementación, use el comando kubectl get pod. A medida que se implementa la aplicación actualizada, los pods finalizan y se vuelven a crear con la nueva imagen de contenedor:

kubectl get pods

La salida del ejemplo siguiente muestra los pods que terminan y las nuevas instancias que se ejecutan a medida que progresa la implementación:

$ kubectl get pods

NAME                               READY     STATUS        RESTARTS   AGE
azure-vote-back-2978095810-gq9g0   1/1       Running       0          5m
azure-vote-front-1297194256-tpjlg  1/1       Running       0          1m
azure-vote-front-1297194256-tptnx  1/1       Running       0          5m
azure-vote-front-1297194256-zktw9  1/1       Terminating   0          1m

Prueba de la aplicación actualizada

Para ver la aplicación actualizada, obtenga primero la dirección IP externa del servicio azure-vote-front:

kubectl get service azure-vote-front

A continuación, abra un explorador web a la dirección IP del servicio:

Captura de pantalla que muestra un ejemplo de la imagen actualizada que azure Voting App se ejecuta en un clúster de Kubernetes abierto en un explorador web local.

Pasos siguientes

En este tutorial, ha actualizado una aplicación y ha implementado esta actualización en el clúster de Kubernetes. Ha aprendido a:

  • Actualizar el código de la aplicación de front-end
  • Crear una imagen de contenedor actualizada
  • Insertar una imagen de contenedor en Azure Container Registry
  • Implementar la imagen de contenedor actualizada

Pase al siguiente tutorial para aprender a actualizar un clúster a una nueva versión de Kubernetes.