Actualización de Azure SQL Managed Instance conectado de manera indirecta a Azure Arc mediante la CLI
En este artículo se explica cómo actualizar una instancia administrada de SQL en un controlador de datos habilitado para Azure Arc conectado de forma indirecta mediante la CLI de Azure (az
).
Requisitos previos
Instalación de herramientas
Antes de pasar a las tareas de este artículo, instale:
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.
Limitaciones
El controlador de datos de Azure Arc debe actualizarse a la nueva versión para que la instancia administrada se pueda actualizar.
Si la integración de Active Directory está habilitada, el conector de Active Directory debe actualizarse a la nueva versión antes de que se pueda actualizar la instancia administrada.
La instancia administrada debe tener la misma versión que el controlador de datos y el conector de Active Directory antes de actualizar un controlador de datos.
No hay ningún proceso de actualización por lotes disponible en este momento.
Actualización de la instancia administrada
En primer lugar, se puede realizar un simulacro. El simulacro valida el esquema de versión y enumera las instancias que se actualizarán.
Por ejemplo:
az sql mi-arc upgrade --name <instance name> --k8s-namespace <namespace> --dry-run --use-k8s
El resultado será:
Preparing to upgrade sql sqlmi-1 in namespace arc to data controller version.
****Dry Run****1 instance(s) would be upgraded by this commandsqlmi-1 would be upgraded to <version-tag>.
Uso general
Durante una actualización de uso general de SQL Managed Instance, el pod finalizará y se volverá a aprovisionar en la nueva versión. Como consecuencia, se producirá un corto tiempo de inactividad a medida que se crea el nuevo pod. Para garantizar una interrupción mínima, deberá crear resistencia en la aplicación, por ejemplo, en la lógica de reintento de conexión. Lea Información general sobre el fundamento de confiabilidad para obtener más información sobre la arquitectura de resistencia y la Guía de reintentos para los servicios de Azure.
Crítico para la empresa
Durante una actualización crítica para la empresa de SQL Managed Instance con más de una réplica:
- Los pods de réplica secundaria finalizan y se vuelven a aprovisionar en la nueva versión.
- Una vez actualizadas las réplicas, la réplica principal conmutará por error a una réplica actualizada.
- El pod principal anterior finaliza y se vuelve a aprovisionar en la nueva versión y se convierte en uno secundario.
Hay un breve momento de tiempo de inactividad cuando se produce la conmutación por error.
Actualizar
Para actualizar una instancia administrada, use el siguiente comando:
az sql mi-arc upgrade --name <instance name> --desired-version <version> --k8s-namespace <namespace> --use-k8s
Ejemplo:
az sql mi-arc upgrade --name instance1 --desired-version v1.0.0.20211028 --k8s-namespace arc1 --use-k8s
Monitor
CLI
Puede supervisar el progreso de la actualización con el comando show
.
az sql mi-arc show --name <instance name> --k8s-namespace <namespace> --use-k8s
Output
La salida del comando mostrará la información del recurso. La información de actualización estará en Estado.
Durante la actualización, State
mostrará Updating
y Running Version
será la versión actual:
Status:
Log Search Dashboard: https://30.88.222.48:5601/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:sqlmi-1'))
Metrics Dashboard: https://30.88.221.32:3000/d/40q72HnGk/sql-managed-instance-metrics?var-hostname=sqlmi-1-0
Observed Generation: 2
Primary Endpoint: 30.76.129.38,1433
Ready Replicas: 1/1
Running Version: v1.0.0_2021-07-30
State: Updating
Una vez completada la actualización, State
mostrará Ready
y Running Version
será la nueva versión:
Status:
Log Search Dashboard: https://30.88.222.48:5601/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:sqlmi-1'))
Metrics Dashboard: https://30.88.221.32:3000/d/40q72HnGk/sql-managed-instance-metrics?var-hostname=sqlmi-1-0
Observed Generation: 2
Primary Endpoint: 30.76.129.38,1433
Ready Replicas: 1/1
Running Version: <version-tag>
State: 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.