Solución de problemas de la extensión del registro conectado
En este artículo se describen algunos mensajes de error comunes que puede recibir al instalar o actualizar la extensión del registro conectado para clústeres de Kubernetes habilitados para Arc.
¿Cómo está instalada la extensión del registro conectado?
La extensión del registro conectado se publica como un gráfico de Helm y es instalada por Helm V3. Todos los componentes de la extensión del registro conectado se instalan en el espacio de nombres connected-registry. Puede usar los comandos siguientes para comprobar el estado de la extensión.
# get the extension status
az k8s-extension show --name <extension-name>
# check status of all pods of connected registry extension
kubectl get pod -n connected-registry
# get events of the extension
kubectl get events -n connected-registry --sort-by='.lastTimestamp'
Errores comunes
Error: No se puede volver a usar un nombre que todavía está en uso
Este error significa que el nombre de extensión que especificó ya existe. Si el nombre ya está en uso, debe usar otro nombre.
Error: No se puede crear nuevo contenido en el espacio de nombres connected-registry porque se está finalizando
Este error sucede cuando una operación de desinstalación no finaliza y se desencadena otra operación de instalación. Puede ejecutar el comando az k8s-extension show
para comprobar el estado de aprovisionamiento de la extensión y asegurarse de que la extensión se ha desinstalado antes de realizar otras acciones.
Error: error de descarga la ruta de acceso del gráfico no se ha encontrado
Este error sucede cuando se especifica una versión de extensión incorrecta. Debe asegurarse de que la versión especificada existe. Si desea usar la versión más reciente, no es necesario especificar --version
.
Escenarios comunes
Escenario 1: Error en la instalación, pero no se muestra un mensaje de error
Si la extensión genera un mensaje de error al crearlo o actualizarlo, puede inspeccionar dónde se produjo el error en la creación mediante la ejecución del comando az k8s-extension list
:
az k8s-extension list \
--resource-group <my-resource-group-name> \
--cluster-name <my-cluster-name> \
--cluster-type connectedClusters
Solución: Reinicie el clúster, registre el proveedor de servicios, o elimine y vuelva a instalar el registro conectado
Para resolver este problema, pruebe los métodos siguientes:
Reinicie el clúster de Kubernetes de Arc.
Registre el proveedor de servicios KubernetesConfiguration.
Fuerce la eliminación y reinstalación de la extensión del registro conectado.
Escenario 2: La versión del registro conectado de destino no existe
Al intentar instalar la extensión del registro conectado para tener como destino una versión específica, recibirá un mensaje de error que indica que la versión del registro conectado no existe.
Solución: Vuelva a instalar una versión del registro conectado compatible
Pruebe volver a instalar la extensión. Asegúrese de usar una versión compatible del registro conectado.
Problemas comunes
Problema: La creación de extensiones se bloquea en estado de ejecución
Posibilidad 1: Problema con la notificación de volumen persistente (PVC)
- Comprobación del estado de la PVC del registro conectado
kubectl get pvc -n connected-registry -o yaml connected-registry-pvc
El valor de la fase en estado debe ser enlazado. Si no cambia de pendiente, elimine la extensión.
- Compruebe si la clase de almacenamiento deseada está en la lista de clases de almacenamiento:
kubectl get storageclass --all-namespaces
- Si no es así, vuelva a crear la extensión y agréguela
--config pvc.storageClassName=”standard”`
- Como alternativa, podría ser un problema con no tener suficiente espacio para la PVC. Volver a crear la extensión con el parámetro
--config pvc.storageRequest=”250Gi”`
Posibilidad 2: La cadena de conexión es incorrecta
- Compruebe los registros del pod del registro conectado:
kubectl get pod -n connected-registry
- Copie el nombre del pod del registro conectado (por ejemplo: “connected-registry-8d886cf7f-w4prp”) y péguelo en el siguiente comando:
kubectl logs -n connected-registry connected-registry-8d886cf7f-w4prp
- Si ve el siguiente mensaje de error, la cadena de conexión del registro conectado es incorrecta:
Response: '{"errors":[{"code":"UNAUTHORIZED","message":"Incorrect Password","detail":"Please visit https://aka.ms/acr#UNAUTHORIZED for more information."}]}'
- Asegúrese de que se ha creado un archivo protected-settings-extension.json
cat protected-settings-extension.json
- Si es necesario, vuelva a generar el archivo protected-settings-extension.json
cat << EOF > protected-settings-extension.json
{
"connectionString": "$(az acr connected-registry get-settings \
--name myconnectedregistry \
--registry myacrregistry \
--parent-protocol https \
--generate-password 1 \
--query ACR_REGISTRY_CONNECTION_STRING --output tsv --yes)"
}
EOF
- Actualización de la extensión para incluir la nueva cadena de conexión
az k8s-extension update \
--cluster-name <myarck8scluster> \
--cluster-type connectedClusters \
--name <myconnectedregistry> \
-g <myresourcegroup> \
--config-protected-file protected-settings-extension.json
Problema: Se ha creado la extensión, pero el registro conectado no está en un estado “En línea”
Posibilidad 1: No se ha desactivado el registro conectado anterior
Este escenario suele ocurrir cuando se ha eliminado una extensión de registro conectado anterior y se ha creado una nueva para el mismo registro conectado.
- Compruebe los registros del pod del registro conectado:
kubectl get pod -n connected-registry
- Copie el nombre del pod del registro conectado (por ejemplo: “connected-registry-xxxxxxxxx-xxxxx”) y péguelo en el siguiente comando:
kubectl logs -n connected-registry connected-registry-xxxxxxxxx-xxxxx
- Si ve el siguiente mensaje de error, el registro conectado debe desactivarse:
Response: '{"errors":[{"code":"ALREADY_ACTIVATED","message":"Failed to activate the connected registry as it is already activated by another instance. Only one instance is supported at any time.","detail":"Please visit https://aka.ms/acr#ALREADY_ACTIVATED for more information."}]}'
- Ejecute el siguiente comando para desactivarlo:
az acr connected-registry deactivate -n <myconnectedregistry> -r <mycontainerregistry>
Después de unos minutos, se debe volver a crear el pod del registro conectado y el error debería desaparecer.
Habilitar registro
- Ejecute el comando [az acr connected-registry update] para actualizar la extensión del registro conectado con el nivel de registro de depuración:
az acr connected-registry update --registry mycloudregistry --name myacrregistry --log-level debug
Se pueden aplicar los siguientes niveles de registro para ayudar a solucionar problemas:
La depuración proporciona información detallada con fines de depuración.
La información proporciona información general con fines de depuración.
La advertencia indica posibles problemas que aún no son errores, pero pueden convertirse en uno si no se realiza ninguna acción.
Los errores registran errores que impiden que se complete una operación.
Ninguno desactiva el registro, por lo que no se escribe ningún mensaje de registro.
Ajuste el nivel de registro según sea necesario para solucionar el problema.
La selección activa proporciona más opciones para ajustar el nivel de detalle de los registros al depurar problemas con un registro conectado. Están disponibles las opciones siguientes:
El nivel de registro del registro conectado es específico de las operaciones del registro conectado y determina la gravedad de los mensajes que controla el registro conectado. Esta configuración se usa para administrar el comportamiento de registro del propio registro conectado.
--log-level establece el nivel de registro en la instancia. El nivel de registro determina la gravedad de los mensajes que controla el registrador. Al establecer el nivel de registro, puede filtrar los mensajes que están por debajo de una gravedad determinada. Por ejemplo, si establece el nivel de registro en "advertencia", el registrador controla advertencias, errores y mensajes críticos, pero omite la información y los mensajes de depuración.
El nivel de registro az cli controla el nivel de detalle de los mensajes de salida durante el funcionamiento de la CLI de Azure. La CLI de Azure (az) proporciona varias opciones de detalle para los niveles de registro, que se pueden ajustar para controlar la cantidad de información de salida durante su operación:
--verbose aumenta el nivel de detalle de los registros. Proporciona información más detallada que la configuración predeterminada, que puede ser útil para identificar problemas.
--debug habilita registros de depuración completos. Los registros de depuración proporcionan la información más detallada, incluida toda la información proporcionada en el nivel "detallado" y más detalles destinados a diagnosticar problemas.