Share via


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

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.

Captura de pantalla del área de trabajo de Azure Monitor

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.

  1. Descargue el archivo ConfigMap ama-metrics-settings-configmap.yaml y cambie su nombre por configmap-controlplane.yaml.

  2. Establezca minimalingestionprofile = false y compruebe que los destinos de default-scrape-settings-enabled de los que desea extraer se establecen en true. Los únicos destinos que puede especificar son: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manager y controlplane-etcd.

  3. 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.

  1. Descargue el archivo ConfigMap ama-metrics-settings-configmap y cambie su nombre por configmap-controlplane.yaml.

  2. Establezca minimalingestionprofile = true y compruebe que los destinos en default-scrape-settings-enabled los que desea extraer están establecidos en true. Los únicos destinos que puede especificar son: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manager y controlplane-etcd.

  3. En default-targets-metrics-keep-list, especifique la lista de métricas para los destinos de true. 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

  1. Descargue el archivo ConfigMap ama-metrics-settings-configmap y cambie su nombre por configmap-controlplane.yaml.

  2. Establezca minimalingestionprofile = false y compruebe que los destinos en default-scrape-settings-enabled los que desea extraer están establecidos en true. Los únicos destinos que puede especificar son: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manager y controlplane-etcd.

  3. En default-targets-metrics-keep-list, especifique la lista de métricas para los destinos de true. 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?

Pasos siguientes

Después de evaluar esta característica en vista previa, comparta sus comentarios. Estamos interesados en escuchar lo que piensa.