Compartir a través de


Actualización de un controlador de datos de Azure Arc conectado indirectamente con la CLI

En este artículo se explica cómo actualizar un controlador de datos de Azure Arc conectado de forma indirecta mediante la CLI de Azure (az).

Durante una actualización del controlador de datos, se pueden actualizar las partes del plano de control de datos, como las definiciones de recursos personalizados (CRD) y los contenedores. Una actualización del controlador de datos no provocará ningún tiempo de inactividad para los servicios de datos (servidor de SQL Managed Instance o PostgreSQL).

Requisitos previos

Necesitará un controlador de datos conectado indirectamente con imageTag v1.0.0_2021-07-30 o posterior.

Para comprobar la versión, ejecute:

kubectl get datacontrollers -n <namespace> -o custom-columns=BUILD:.spec.docker.imageTag

Instalación de herramientas

Para continuar con las tareas de este artículo, debe instalar:

En los ejemplos de este artículo se usan corchetes angulares < ... > para identificar los valores que hay que reemplazar antes de ejecutar el script. Reemplace los corchetes y los valores incluidos en ellos.

La versión de la extensión de arcdata y la versión de la imagen están relacionadas. Compruebe que tiene la versión correcta de la extensión de arcdata que corresponde a la versión de la imagen a la que quiere actualizar en el registro de versiones.

Visualización de imágenes disponibles y elección de una versión

Extraiga la lista de imágenes disponibles del controlador de datos con el siguiente comando:

az arcdata dc list-upgrades --k8s-namespace <namespace>

El comando anterior devuelve una salida como la del ejemplo siguiente:

Found 2 valid versions.  The current datacontroller version is v1.0.0_2021-07-30.
v1.1.0_2021-11-02
v1.0.0_2021-07-30

Actualización del controlador de datos

En esta sección se muestra cómo actualizar un controlador de datos conectado indirectamente.

Nota:

Algunos de los modos y niveles de servicio de datos están disponibles con carácter general y otros están en versión preliminar. Si instala servicios de disponibilidad general y de versión preliminar en el mismo controlador de datos, no puede realizar una actualización local. Para actualizar, elimine todas las instancias de base de datos que no sean de disponibilidad general. Puede encontrar la lista de servicios disponibles con carácter general y en versión preliminar en las notas de la versión.

Para conocer las rutas de actualización admitidas, consulte Actualización de los servicios de datos habilitados para Azure Arc.

Actualizar

Tendrá que conectarse a un clúster de Kubernetes y autenticarse en él, además de tener un contexto de Kubernetes existente seleccionado, antes de empezar a actualizar el controlador de datos de Azure Arc.

Primero puede hacer un simulacro. El simulacro comprueba que el registro existe, el esquema de versión y el token de autorización del repositorio privado (si se usa). Para hacer un simulacro, use el parámetro --dry-run en el comando az arcdata dc upgrade. Por ejemplo:

az arcdata dc upgrade --desired-version <version> --k8s-namespace <namespace> --dry-run --use-k8s

La salida del comando anterior es:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
****Dry Run****
Arcdata Control Plane would be upgraded to: <version-tag>

Para actualizar el controlador de datos, ejecute el comando az arcdata dc upgrade y especifique la etiqueta de imagen con --desired-version.

az arcdata dc upgrade --name <data controller name> --desired-version <image tag> --k8s-namespace <namespace> --use-k8s

Ejemplo:

az arcdata dc upgrade --name arcdc --desired-version v1.7.0_2022-05-24 --k8s-namespace arc --use-k8s

La salida del comando anterior muestra el estado de los pasos:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Creating service account: arc:cr-upgrade-worker
Creating cluster role: arc:cr-upgrade-worker
Creating cluster role binding: arc:crb-upgrade-worker
Cluster role binding: arc:crb-upgrade-worker created successfully.
Cluster role: arc:cr-upgrade-worker created successfully.
Service account arc:cr-upgrade-worker has been created successfully.
Creating privileged job arc-elevated-bootstrapper-job

Supervisión del estado de actualización

La actualización es un proceso de dos partes. En primer lugar se actualiza el controlador y luego la pila de supervisión. Puede supervisar el progreso de la actualización con la CLI.

CLI

 az arcdata dc status show --name <data controller name> --k8s-namespace <namespace> --use-k8s

Una vez completada la actualización, la salida es:

Ready

Solución de problemas

Cuando la versión deseada se establece en una versión específica, el trabajo de arranque intentará actualizar a esa versión hasta que se realice correctamente. Si la actualización se realiza correctamente, la propiedad RunningVersion de la especificación se actualiza a la nueva versión. Las actualizaciones pueden producir un error en escenarios como una etiqueta de imagen incorrecta, no se pueden conectar al registro o al repositorio, una CPU o memoria insuficiente asignadas a los contenedores o un almacenamiento insuficiente.

  1. Ejecute el comando siguiente para ver si alguno de los pods muestra un estado Error o tiene un gran número de reinicios:

    kubectl get pods --namespace <namespace>
    
  2. Para ver si hay un error en los eventos, ejecute

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Para obtener una lista de los contenedores de los pods, ejecute

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Para obtener los registros de un contenedor, ejecute

    kubectl logs <pod name> <container name> --namespace <namespace>
    

Para ver errores comunes y cómo solucionarlos, vaya a Recursos para la solución de problemas.