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.
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>
Para ver si hay un error en los eventos, ejecute
kubectl describe pod <pod name> --namespace <namespace>
Para obtener una lista de los contenedores de los pods, ejecute
kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
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.