Compartir a través de


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

En este artículo se explica cómo actualizar un controlador de datos habilitado para Azure Arc conectado de forma directa 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

Va a necesitar un controlador de datos conectado de manera directa 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 de forma directa.

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.

Autenticar

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.

kubectl config use-context <Kubernetes cluster name>

Actualización del controlador de datos

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 --resource-group <resource group> --name <data controller name> --desired-version <version> --dry-run [--no-wait]

La salida del comando anterior es:

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

Una vez actualizada la extensión del controlador de datos de Arc, ejecute el comando az arcdata dc upgrade y especifique la etiqueta de imagen con --desired-version.

az arcdata dc upgrade --resource-group <resource group> --name <data controller name> --desired-version <version> [--no-wait]

Ejemplo:

az arcdata dc upgrade --resource-group rg-arcds --name dc01 --desired-version v1.7.0_2022-05-24 [--no-wait]

Supervisión del estado de actualización

Puede supervisar el progreso de la actualización con la CLI.

CLI

 az arcdata dc status show --resource-group <resource group>

La actualización es un proceso de dos partes. En primer lugar se actualiza el controlador y luego la pila de supervisión. 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.