Solución de problemas de recursos
En este artículo se identifica la solución de problemas de recursos de los servicios de datos habilitados para Azure Arc.
Cargas
Errores relacionados con la carga de registros
Si implementó el controlador de datos de Azure Arc en el modo de conectividad direct
mediante kubectl
y no ha creado un secreto para las credenciales del área de trabajo de Log Analytics, es posible que vea los siguientes mensajes de error en el CR (recurso personalizado) del controlador de datos:
status": {
"azure": {
"uploadStatus": {
"logs": {
"lastUploadTime": "YYYY-MM-HHTMM:SS:MS.SSSSSSZ",
"message": "spec.settings.azure.autoUploadLogs is true, but failed to get log-workspace-secret secret."
},
Para resolver el error anterior, cree un secreto con las credenciales del área de trabajo de Log Analytics que contenga WorkspaceID
y SharedAccessKey
como se indica a continuación:
apiVersion: v1
data:
primaryKey: <base64 encoding of Azure Log Analytics workspace primary key>
workspaceId: <base64 encoding of Azure Log Analytics workspace Id>
kind: Secret
metadata:
name: log-workspace-secret
namespace: <your datacontroller namespace>
type: Opaque
Errores relacionados con la carga de métricas en el modo conectado directo
Si configuró la carga automática de métricas, en el modo conectado directo y los permisos necesarios para el MSI no se han concedido correctamente (como se describe en Carga de métricas), es posible que vea un error en los registros como se indica a continuación:
'Metric upload response: {"error":{"code":"AuthorizationFailed","message":"Check Access Denied Authorization for AD object XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX over scope /subscriptions/XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX/resourcegroups/my-resource-group/providers/microsoft.azurearcdata/sqlmanagedinstances/arc-dc, User Tenant Id: XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX. Microsoft.Insights/Metrics/write was not allowed, Microsoft.Insights/Telemetry/write was notallowed. Warning: Principal will be blocklisted if the service principal is not granted proper access while it hits the GIG endpoint continuously."}}
Para resolver el error anterior, recupere el MSI para la extensión del controlador de datos de Azure Arc y conceda los roles necesarios, tal como se describe en Carga de métricas.
Errores relacionados con la carga de uso en el modo conectado directo
Si implementó el controlador de datos de Azure Arc en el modo conectado directo, los permisos necesarios para cargar la información de uso se conceden automáticamente para el MSI de la extensión del controlador de datos de Azure Arc. Si el proceso de carga automática se ejecuta en incidencias relacionadas con los permisos, es posible que vea un error en los registros de la siguiente manera:
identified that your data controller stopped uploading usage data to Azure. The error was:
{"lastUploadTime":"2022-05-05T20:10:47.6746860Z","message":"Data controller upload response: {\"error\":{\"code\":\"AuthorizationFailed\",\"message\":\"The client 'XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX' with object id 'XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX' does not have authorization to perform action 'microsoft.azurearcdata/datacontrollers/write' over scope '/subscriptions/XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX/resourcegroups/my-resource-group/providers/microsoft.azurearcdata/datacontrollers/arc-dc' or the scope is invalid. If access was recently granted, please refresh your credentials.\"}}"}
Para resolver la incidencia de permisos, recupere MSI y conceda los roles necesarios como se describe en Carga de métricas).
Actualizaciones
Etiqueta de imagen incorrecta
Si usa la CLI az
para actualizar y pasa una etiqueta de imagen incorrecta, le aparecerá un error en dos minutos.
Job Still Active : Failed to await bootstrap job complete after retrying for 2 minute(s).
Failed to await bootstrap job complete after retrying for 2 minute(s).
Al ver los pods, verá el estado del trabajo de arranque como ErrImagePull
.
STATUS
ErrImagePull
Al describir el pod, verá
Failed to pull image "<registry>/<repository>/arc-bootstrapper:<incorrect image tag>": [rpc error: code = NotFound desc = failed to pull and unpack image
Para resolverlo, haga referencia al registro de versión de la etiqueta de imagen correcta. Vuelva a ejecutar el comando de actualización con la etiqueta de imagen correcta.
No se puede conectar al registro o al repositorio
Si está intentando ejecutar una actualización que no ha generado ningún error pero que tarda más de quince minutos, puede ver el progreso de esta mediante los pods. Ejecutar
kubectl get pods -n <namespace>
Al ver los pods, verá el estado del trabajo de arranque como ErrImagePull
.
STATUS
ErrImagePull
Descripción del pod de trabajo de arranque para ver los eventos.
kubectl describe pod <pod name> -n <namespace>
Al describir el pod, verá el siguiente error
failed to resolve reference "<registry>/<repository>/arc-bootstrapper:<image tag>"
Esto suele suceder si la imagen se implementó desde un registro privado, está usando Kubernetes para actualizar a través de un archivo yaml y el archivo yaml hace referencia a mcr.microsoft.com en lugar de al registro privado. Para resolverlo, cancele el trabajo de actualización. Para localizar el registro desde el que implementó, ejecute
kubectl describe pod <controller in format control-XXXXX> -n <namespace>
Localice Containers.controller.Image, donde verá el registro y el repositorio. Capture esos valores, ingrese en el archivo yaml y vuelva a ejecutar la actualización.
No hay suficientes recursos
Si está intentando ejecutar una actualización que no ha generado ningún error pero que tarda más de quince minutos, puede ver el progreso de esta mediante los pods. Ejecutar
kubectl get pods -n <namespace>
Busque un pod que muestre que algunos de los contenedores están listos, pero que no sea -, por ejemplo, este pod metricsdb-0 solo tiene uno de los dos contenedores:
NAME READY STATUS RESTARTS AGE
bootstrapper-848f8f44b5-7qxbx 1/1 Running 0 16m
control-7qxw8 2/2 Running 0 16m
controldb-0 2/2 Running 0 16m
logsdb-0 3/3 Running 0 18d
logsui-hvsrm 3/3 Running 0 18d
metricsdb-0 1/2 Running 0 18d
Descripción del pod para visualizar Eventos.
kubectl describe pod <pod name> -n <namespace>
Si no hay ningún evento, obtenga los nombres de contenedor y vea los registros de los contenedores.
kubectl get pods <pod name> -n <namespace> -o jsonpath='{.spec.containers[*].name}*'
kubectl logs <pod name> <container name> -n <namespace>
Si ve un mensaje sobre una CPU o memoria insuficientes, debe agregar más nodos al clúster de Kubernetes o agregar más recursos a los nodos existentes.
Recursos por tipo
Escenario: Solución de problemas de servidores PostgreSQL
Visualización de registros y métricas mediante Kibana y Grafana
Contenido relacionado
Escenario: Visualización del inventario de las instancias en Azure Portal