ama-metrics-ksm en CrashLoopBackOff en AKS: Diagnóstico y Solución por Configuración de Azure Monitor
Cuando trabajamos con Azure Kubernetes Service (AKS), es normal depender de herramientas como Azure Monitor para obtener métricas y visibilidad del cluster. Sin embargo, una configuración incorrecta o ausente de la integración de Azure Monitor/Log Analytics puede causar que Pods críticos, como ama-metrics-ksm
, no se inicien y entren en un ciclo de reinicios constantes. Este artículo detalla cómo identificar este problema, analizar el output engañoso y solucionarlo de manera efectiva reinstalando la integración.
Identificando el problema
En nuestro cluster, detectamos que un Pod del namespace kube-system
estaba fallando continuamente:
kubectl get pods -n kube-system
Output:
kube-system ama-metrics-ksm-84cb9d85fb-tlbpb 0/1 CrashLoopBackOff 5 (44s ago) 3m51s
El estado CrashLoopBackOff
indica que Kubernetes intenta arrancar el Pod, pero falla y se reinicia repetidamente.
Analizando los logs
Para entender la causa del fallo, revisamos los logs del Pod:
kubectl logs ama-metrics-ksm-84cb9d85fb-tlbpb -n kube-system
Output:
E1008 09:46:30.798386 1 wrapper.go:40] "Failed to run kube-state-metrics" err="failed to set up annotations allowlist: resource does not exist. Available resources: leases,namespaces,..."
El Pod no puede inicializarse porque no encuentra ciertos recursos o configuraciones que espera. En este contexto, este error es un indicador común de que el Pod ama-metrics-ksm
no ha podido obtener los parámetros de configuración del workspace de Azure Monitor/Log Analytics (como el Resource ID o la URL de ingesta), por lo que no puede arrancar.
Comprobar la Configuración de Azure Monitor
El diagnóstico se centra en confirmar si la configuración de la integración de Azure Monitor en el cluster de AKS está habilitada y apunta a un workspace válido.
Revisar addon de monitorización habilitado
az aks show --name <cluster-name> --resource-group <cluster-resource-group> --query addonProfiles.monitoring
- null → addon no habilitado.
- enabled: true y workspaceResourceId → addon habilitado y mostrando la workspace asociada.
Revisar workspace configurada
az aks show --name <cluster-name> --resource-group <cluster-resource-group> --query addonProfiles.monitoring.config.logAnalyticsWorkspaceResourceID
Debe devolver el Resource ID completo de Log Analytics/Azure Monitor Workspace que AMA está usando.
- Si está vacío o incorrecto → AMA no tiene workspace configurada.
Revisar variables de entorno del Pod (Opcional)
Si la configuración a nivel de cluster parece correcta, podemos inspeccionar el Deployment:
kubectl get deployment ama-metrics-ksm -n kube-system -o yaml
Buscar variables como AZURE_MONITOR_WORKSPACE_RESOURCE_ID
.
- Si están vacías o incorrectas → AMA no ha recibido la configuración correcta.
Probar conectividad desde el Pod
kubectl exec -n kube-system <ama-metrics-ksm-pod> -- curl -v https://<workspace-id>.ods.opinsights.azure.com
- Si falla → el Pod no puede comunicarse con Log Analytics.
- Si tiene éxito → AMA puede enviar métricas correctamente.
Diagnóstico Basado en Evidencia
Tras confirmar con los pasos anteriores, se determina que:
- El Pod
ama-metrics-ksm
depende de Azure Monitor para su configuración. - Los logs muestran un fallo de inicialización (
resource does not exist
), lo que indica la ausencia de la configuración requerida del workspace. - La configuración del cluster (vía
az aks show
) muy probablemente indica que no hay un workspace válido conectado o la configuración es nula. - El
CrashLoopBackOff
ocurre inmediatamente al arrancar.
Conclusión: El Pod falla porque la extensión de Azure Monitor en AKS no tiene una configuración válida o completa del workspace de Log Analytics/Azure Monitor, impidiendo que el agente se inicialice correctamente.
Solución: reinstalar Azure Monitor Metrics
La solución más efectiva para forzar la reconfiguración completa y la corrección de la integración es re-ejecutar la actualización del cluster habilitando explícitamente la integración de métricas con el Resource ID correcto del workspace.
az aks update \
--enable-azure-monitor-metrics \
--name <cluster-name> \
--resource-group <cluster-resource-group> \
--azure-monitor-workspace-resource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/microsoft.monitor/accounts/<workspace-name>
Advertencia: Si ya tenía una configuración de Azure Monitor, este comando la sobrescribirá con el Resource ID especificado. Asegúrese de usar el ID correcto.
Esto restaura la integración a nivel de AKS. Kubernetes recreará automáticamente el Pod ama-metrics-ksm
con la configuración correcta
Verificar que el Pod está activo
kubectl get pods -n kube-system

Validar logs
kubectl logs -n kube-system ama-metrics-ksm-<pod-name>
wq!