Supervisión de métricas del plano de control de Azure Kubernetes Service (AKS) (versión preliminar)
El estado del plano de control de Azure Kubernetes Service (AKS) es fundamental para el rendimiento y la confiabilidad del clúster. Las métricas del plano de control (versión preliminar) proporcionan más visibilidad sobre su disponibilidad y rendimiento, lo que le permite maximizar la observabilidad general y mantener la excelencia operativa. Estas métricas son totalmente compatibles con Prometheus y Grafana, y se pueden personalizar para almacenar solo lo que considere necesario. Con estas nuevas métricas, puede recopilar todas las métricas del servidor de API, ETCD, Scheduler, Autoscaler y el administrador de controladores.
Este artículo le ayuda a comprender esta nueva característica, a implementarla y a observar la telemetría recopilada.
Requisitos previos y limitaciones
- Solo es compatible con el servicio administrado de Azure Monitor para Prometheus.
- No es compatible con Private Link.
- Solo se puede personalizar el mapa ama-metrics-settings-config-map predeterminado. No se admiten todas las demás personalizaciones.
- El clúster debe usar la autenticación de identidad administrada.
Instalación o actualización de la extensión de la CLI de Azure aks-preview
Importante
Las características en versión preliminar de AKS están disponibles como opción de participación y autoservicio. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y garantía limitada. Las versiones preliminares de AKS reciben cobertura parcial del soporte al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:
Instale la extensión aks-preview
Azure CLI mediante el comando az extension add
.
az extension add --name aks-preview
Si necesita actualizar la versión de la extensión, puede hacerlo mediante el comando az extension update
.
az extension update --name aks-preview
Registro de la marca de característica "AzureMonitorMetricsControlPlanePreview"
Registre la marca de la característica AzureMonitorMetricsControlPlanePreview
con el comando AzureMonitorMetricsControlPlanePreview
, como se muestra en el siguiente ejemplo:
az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Tarda unos minutos en que el estado muestre Registrado. Para comprobar el estado de registro se usa el comandoaz feature show:
az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Cuando aparezca el estado Registrado, actualice el registro del proveedor de recursos Microsoft.ContainerService mediante el comando az provider register:
az provider register --namespace "Microsoft.ContainerService"
Habilitación de las métricas del plano de control en el clúster de AKS
Puede habilitar las métricas del plano de control con el servicio administrado de Azure Monitor para el complemento Prometheus durante la creación del clúster o para un clúster existente. Para recopilar métricas de Prometheus del clúster de Kubernetes, consulte Habilitación de Prometheus y Grafana para clústeres de Kubernetes y siga los pasos descritos en la pestaña de la CLI para un clúster de AKS. En la línea de comandos, asegúrese de incluir los parámetros --generate-ssh-keys
y --enable-managed-identity
.
Si el clúster ya tiene implementado el complemento de Prometheus, simplemente puede ejecutar un az aks update
para asegurarse de que el clúster se actualiza para empezar a recopilar métricas del plano de control.
az aks update -n <cluster-name> -g <resource-group>
Nota:
A diferencia de las métricas recopiladas de los nodos de clúster, un componente recopila las métricas del plano de control que no forman parte del complemento ama-metrics. Habilitar la marca de características AzureMonitorMetricsControlPlanePreview
y el complemento Prometheus administrado garantiza que se recopilen las métricas del plano de control. Después de habilitar la recopilación de métricas, los datos pueden tardar varios minutos en aparecer en el área de trabajo.
Consulta de métricas del plano de control
Las métricas del plano de control se almacenan en un área de trabajo de Azure Monitor en la región del clúster. Se pueden consultar directamente desde el área de trabajo o a través de la instancia de Azure Managed Grafana conectada al área de trabajo. Para buscar el área de trabajo de Azure Monitor asociada al clúster, en el panel izquierdo del clúster de AKS seleccionado, vaya a la sección Supervisión y seleccione Información. En la página Container Insights del clúster, seleccione Supervisar configuración.
Si usa Azure Managed Grafana para visualizar los datos, puede importar los siguientes paneles. AKS proporciona plantillas de panel para ayudarle a ver y analizar los datos de telemetría del plano de control en tiempo real.
Personalización de las métricas del plano de control
De forma predeterminada, AKS incluye un conjunto preconfigurado de métricas para recopilar y almacenar para cada componente. API server
y etcd
están habilitados de forma predeterminada. Esta lista puede personalizarse a través de ama-settings-configmap. La lista de las métricas del perfil minimal-ingestion
está disponible aquí.
A continuación se enumeran los destinos predeterminados:
controlplane-apiserver = true
controlplane-cluster-autoscaler = false
controlplane-kube-scheduler = false
controlplane-kube-controller-manager = false
controlplane-etcd = true
Las distintas opciones son similares a Azure Managed Prometheus que se enumeran aquí.
Todos los objetos ConfigMap deben aplicarse al espacio de nombres kube-system
de cualquier clúster.
Ingesta de solo métricas mínimas para el destino predeterminado
Este es el comportamiento predeterminado con el valor default-targets-metrics-keep-list.minimalIngestionProfile="true"
. Solo se ingieren las métricas enumeradas más adelante en este artículo para cada uno de los destinos predeterminados, que en este caso son controlplane-apiserver
y controlplane-etcd
.
Ingesta de todas las métricas de todos los destinos
Realice los pasos siguientes para recopilar todas las métricas de todos los destinos del clúster.
Descargue el archivo ConfigMap ama-metrics-settings-configmap.yaml y cambie su nombre por
configmap-controlplane.yaml
.Establezca
minimalingestionprofile = false
y compruebe que los destinos dedefault-scrape-settings-enabled
de los que desea extraer se establecen entrue
. Los únicos destinos que puede especificar son:controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
ycontrolplane-etcd
.Aplique ConfigMap ejecutando el comando kubectl apply.
kubectl apply -f configmap-controlplane.yaml
Una vez aplicada la configuración, las métricas de los destinos especificados extraídas del plano de control tardan varios minutos en aparecer en el área de trabajo de Azure Monitor.
Ingesta de algunas otras métricas además de las métricas mínimas
Minimal ingestion profile
es una configuración que ayuda a reducir el volumen de ingesta de métricas, ya que solo se recopilan las métricas usadas por los paneles predeterminados, las reglas de grabación predeterminadas y las alertas predeterminadas. Realice los pasos siguientes para personalizar este comportamiento.
Descargue el archivo ConfigMap ama-metrics-settings-configmap y cambie su nombre por
configmap-controlplane.yaml
.Establezca
minimalingestionprofile = true
y compruebe que los destinos endefault-scrape-settings-enabled
los que desea extraer están establecidos entrue
. Los únicos destinos que puede especificar son:controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
ycontrolplane-etcd
.En
default-targets-metrics-keep-list
, especifique la lista de métricas para los destinos detrue
. Por ejemplo,controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
Aplique ConfigMap ejecutando el comando kubectl apply.
kubectl apply -f configmap-controlplane.yaml
Una vez aplicada la configuración, las métricas de los destinos especificados extraídas del plano de control tardan varios minutos en aparecer en el área de trabajo de Azure Monitor.
Ingesta solo de métricas específicas de algunos destinos
Descargue el archivo ConfigMap ama-metrics-settings-configmap y cambie su nombre por
configmap-controlplane.yaml
.Establezca
minimalingestionprofile = false
y compruebe que los destinos endefault-scrape-settings-enabled
los que desea extraer están establecidos entrue
. Los únicos destinos que puede especificar son:controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
ycontrolplane-etcd
.En
default-targets-metrics-keep-list
, especifique la lista de métricas para los destinos detrue
. Por ejemplo,controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
Aplique ConfigMap ejecutando el comando kubectl apply.
kubectl apply -f configmap-controlplane.yaml
Una vez aplicada la configuración, las métricas de los destinos especificados extraídas del plano de control tardan varios minutos en aparecer en el área de trabajo de Azure Monitor.
Solución de problemas de métricas del plano de control
Asegúrese de comprobar que la marca de característica AzureMonitorMetricsControlPlanePreview
está habilitada y que los pods ama-metrics
se están ejecutando.
Nota:
Los métodos de solución de problemas para el servicio administrado de Azure Prometheus no se traducirán directamente aquí, ya que los componentes que extraen el plano de control no están presentes en el complemento Prometheus administrado.
Formato o errores de ConfigMap
Asegúrese de comprobar el formato de ConfigMap y si los campos se rellenan correctamente con los valores previstos. En concreto, default-targets-metrics-keep-list
, minimal-ingestion-profile
y default-scrape-settings-enabled
.
Aislamiento del plano de control del problema del plano de datos
Comience estableciendo algunas de las métricas relacionadas con el nodo en true
y compruebe que las métricas se reenvían al área de trabajo. Esto ayuda a determinar si el problema es específico de la extracción de métricas del plano de control.
Eventos ingeridos
Una vez aplicados los cambios, puede abrir el explorador de métricas desde la página de información general de Azure Monitor o desde la sección Supervisión del clúster seleccionado. En Azure Portal, seleccione Métricas. Compruebe si hay un aumento o una disminución en el número de eventos ingeridos por minuto. Debe ayudarle a determinar si falta la métrica específica o si faltan todas las métricas.
No se expone una métrica específica
Hubo casos en los que se documentan las métricas, pero no se exponen desde el destino y no se reenvían al área de trabajo de Azure Monitor. En este caso, es necesario comprobar que se reenvían otras métricas al área de trabajo.
Sin acceso al área de trabajo de Azure Monitor
Al habilitar el complemento, es posible que haya especificado un área de trabajo existente a la que no tiene acceso. En ese caso, podría parecer que las métricas no se recopilan y reenvían. Asegúrese de crear un área de trabajo al habilitar el complemento o al crear el clúster.
Deshabilitación de las métricas del plano de control en el clúster de AKS
Puede deshabilitar las métricas del plano de control en cualquier momento, ya sea deshabilitando la marca de características, deshabilitando Prometheus administrado o eliminando el clúster de AKS.
Marca de versión preliminar habilitada después de la configuración de Prometheus administrada
Si la marca de vista previa(AzureMonitorMetricsControlPlanePreview
) se ha habilitado en un clúster de Prometheus administrado existente, requerirá forzar una actualización para que el clúster emita métricas del plano de control
Puede ejecutar una actualización de az aks para asegurarse de que las actualizaciones del clúster empiecen a recopilar métricas del plano de control.
az aks update -n <cluster-name> -g <resource-group>
Nota:
Esta acción no quita los datos existentes almacenados en el área de trabajo de Azure Monitor.
Ejecute el siguiente comando para quitar el complemento de métricas que extrae las métricas de Prometheus.
az aks update --disable-azure-monitor-metrics -n <cluster-name> -g <cluster-resource-group>
Ejecute el comando siguiente para deshabilitar la extracción de métricas del plano de control en el clúster de AKS anulando el registro de la marca de característica AzureMonitorMetricsControlPlanePreview
mediante el comando az feature unregister.
az feature unregister "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Preguntas más frecuentes
¿Se pueden extraer estas métricas con Prometheus autohospedado?
- Actualmente, las métricas del plano de control no se pueden extraer con Prometheus autohospedado. Prometheus autohospedado podrá extraer la instancia única en función del equilibrador de carga. Estas métricas no están protegibles, ya que a menudo hay varias réplicas de las métricas del plano de control que solo serán visibles a través de Prometheus administrado.
¿Por qué el agente de usuario no está disponible a través de las métricas del plano de control?
- Las métricas del plano de control en Kubernetes no tienen el agente de usuario. El agente de usuario solo está disponible a través de los registros del plano de control disponibles a través de la configuración de diagnóstico.
Pasos siguientes
Después de evaluar esta característica en vista previa, comparta sus comentarios. Estamos interesados en escuchar lo que piensa.
- Obtenga más información sobre la lista de métricas predeterminadas para el plano de control de AKS.