Configuración y visualización de métricas de Azure Kubernetes Application Network (versión preliminar)

Importante

Las características en versión preliminar de AKS están disponibles a elección del usuario y en régimen de 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 cuentan con soporte parcial por parte del servicio 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:

Azure Kubernetes Application Network proporciona métricas completas para las cargas de trabajo y los componentes del plano de datos de Azure Kubernetes Application Network (ZTunnel, Istio CNI y Waypoint) mediante métricas de Azure Monitor. En este artículo se explica cómo configurar y ver estas métricas en Azure Monitor.

Limitaciones

Actualmente no se admiten las métricas del plano de control. Sin embargo, las métricas del plano de datos están disponibles y puede usarlas para supervisar el estado y el rendimiento de las cargas de trabajo y los componentes de Azure Kubernetes Application Network.

Métricas del plano de datos

Las métricas del plano de datos incluyen métricas de las cargas de trabajo o las aplicaciones y del espacio de nombres appnet-system. Actualmente, Application Network de Azure Kubernetes solo proporciona compatibilidad con las métricas del plano de datos.

Configuración de métricas del plano de datos

Opciones de configuración del área de trabajo para las métricas del plano de datos

Al habilitar la recopilación de métricas de Prometheus para clústeres de miembros de Application Network de Azure Kubernetes, tiene las siguientes opciones para la configuración del área de trabajo:

  • Use un área de trabajo de Azure Monitor existente.
  • Omita el identificador de recurso del área de trabajo y use el área de trabajo predeterminada creada para el grupo de recursos.
  • Cree un área de trabajo de Azure Monitor.

Habilitación de la recopilación de métricas del plano de datos

  1. Habilite la recopilación de métricas de Prometheus en el clúster miembro de Azure Kubernetes Application Network mediante el comando az aks update con el parámetro --azure-monitor-workspace-resource-id establecido en su identificador de área de trabajo existente. Si las métricas de Azure Monitor ya están habilitadas en el clúster de miembros, puede ir directamente al paso siguiente.

    az aks update --enable-azure-monitor-metrics \
      --name $CLUSTER_NAME \
      --resource-group $AKS_RG \
      --azure-monitor-workspace-resource-id $WORKSPACE_ID
    
  2. Cree y aplique el siguiente ConfigMap en el espacio de nombres kube-system usando el comando kubectl apply. Este objeto ConfigMap permite la recolección de datos de Ztunnel, Istio CNI, waypoint y tus aplicaciones o cargas de trabajo.

    kubectl apply -f - <<EOF
    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: ama-metrics-settings-configmap
      namespace: kube-system
    data:
      schema-version: v1
      config-version: ver1
      prometheus-collector-settings: |-
        cluster_alias = ""
        https_config = true
      default-scrape-settings-enabled: |-
        ztunnel = true
        istio-cni = true
      pod-annotation-based-scraping: |-
        podannotationnamespaceregex = ".*"
      default-targets-metrics-keep-list: |-
        ztunnel = ""
        istio-cni = ""
        minimalingestionprofile = true
      default-targets-scrape-interval-settings: |-
        ztunnel = "30s"
        istio-cni = "30s"
        podannotations = "30s"
      debug-mode: |-
        enabled = false
    EOF
    
  3. Agregue anotaciones a los pods de las aplicaciones que desee extraer.

    • prometheus.io/scrape: "true" es necesario para indicar que debe extraerse el pod.
    • prometheus.io/path opcionalmente se usa para indicar la ruta de acceso donde se hospedan las métricas. Si se omite, el valor predeterminado es /metrics.
    • prometheus.io/port opcionalmente se usa para indicar el puerto donde se hospedan las métricas. Si se omite, Prometheus utilizará los puertos declarados del contenedor desde la especificación del pod. En el caso de contenedores sin puertos declarados, Prometheus creará un destino sin puertos (solo IP), que requiere una configuración de re-etiquetado adecuada para trabajar con las anotaciones de puerto. Se recomienda especificar explícitamente el puerto para garantizar la extracción confiable.

    En el ejemplo siguiente se definen anotaciones para un pod que hospeda métricas en <pod IP>:15020/metrics

    prometheus.io/scrape: "true"
    prometheus.io/port: "15020"
    prometheus.io/path: "/metrics"
    

    Es posible que el ReplicaSet de métricas AMA tarde unos minutos en cargar esta configuración.

Visualización de métricas del plano de datos

  1. Vaya al área de trabajo de Azure Monitor en Azure Portal para consultar las métricas mediante PromQL.

  2. Genere tráfico y, a continuación, seleccione consultas de las métricas expuestas para ver las métricas. Por ejemplo, puede ejecutar la consulta siguiente para ver el número total de solicitudes controladas por punto de referencia:

    # ztunnel
    istio_xds_connection_terminations_total
    
    # waypoint
    istio_requests_total
    
    # istio-cni
    istio_cni_install_ready
    

    En la captura de pantalla siguiente se muestran los resultados de las consultas de ejemplo:

    Captura de pantalla de los resultados de las consultas para ver el número total de solicitudes controladas por punto de acceso.

Lista de métricas expuestas

Componente Métricas visibles
ZTunnel istio_build
istio_xds_connection_terminations_total
istio_xds_message_total
istio_xds_message_bytes_total
istio_tcp_connections_opened_total
istio_tcp_connections_closed_total
istio_tcp_received_bytes_total
istio_tcp_sent_bytes_total
istio_on_demand_dns
istio_dns_requests_total
istio_dns_upstream_requests
istio_dns_upstream_failures
istio_dns_upstream_request_duration_seconds
workload_manager_active_proxy_count
workload_manager_pending_proxy_count
workload_manager_proxies_started_total
workload_manager_proxies_stopped_total
Istio CNI istio_cni_install_ready
istio_cni_installs_total
nodeagent_reconcile_events_total
ztunnel_connected
Punto de referencia istio_build
istio_request_bytes_bucket
istio_request_bytes_count
istio_request_bytes_sum
istio_request_duration_milliseconds_bucket
istio_request_duration_milliseconds_count
istio_request_duration_milliseconds_sum
istio_requests_total
istio_response_bytes_bucket
istio_response_bytes_count
istio_response_bytes_sum

Acceso a métricas directamente desde servidores proxy de punto de acceso

Además de las métricas de solicitud y respuesta de Istio, los servidores proxy de waypoint también emiten métricas de Envoy.

  • Para ver una lista completa de las métricas emitidas por el punto de referencia, puede utilizarse el reenvío de puertos hacia un proxy de puntos de referencia en el espacio de nombres y enumerar las métricas mediante los siguientes comandos:

    # Port-forward to waypoint proxy
    kubectl port-forward -n <namespace> deployment/waypoint 15020:15020 &
    
    # List metrics exposed by waypoint
    curl http://localhost:15020/stats/prometheus | grep -v '^#' | grep -v '^$' | awk -F'{' '{print $1}' | sort -u
    

Visualización de métricas con Grafana en Azure Portal

  1. Importe los paneles de la comunidad de Istio.

  2. Genere tráfico para el clúster de miembros y vaya al área de trabajo de Azure Monitor en Azure Portal.

  3. Seleccione Paneles de supervisión>con Grafana.

    En las capturas de pantalla siguientes se muestran ejemplos de importación del panel de Istio Ztunnel:

    Captura de pantalla que muestra la opción importar panel en el área de trabajo de Azure Monitor en Azure Portal.

    Captura de pantalla que muestra las opciones de revisión para importar el panel de Ztunnel en Azure Portal.

    Captura de pantalla que muestra las visualizaciones del panel de Ztunnel en un panel de Grafana en Azure Portal.

Si desea configurar Azure Managed Grafana en lugar de los dashboards con Grafana, consulte Crear un área de trabajo de Azure Managed Grafana mediante la CLI de Azure.

Para más información sobre la observabilidad y supervisión de Application Network de Azure Kubernetes, consulte los siguientes artículos: