Condividi tramite


Configurare e visualizzare le metriche della rete dell'applicazione Azure Kubernetes (anteprima)

Importante

Le funzionalità di anteprima di AKS sono disponibili su base self-service, su scelta. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:

La rete applicativa di Azure Kubernetes offre metriche complete per i carichi di lavoro e i componenti del piano dati di Rete dell'applicazione Azure Kubernetes (ZTunnel, Istio CNI e Waypoint) tramite le metriche di Monitoraggio di Azure. Questo articolo illustra come configurare e visualizzare queste metriche in Monitoraggio di Azure.

Limitazioni

Le metriche del piano di controllo non sono attualmente supportate. Tuttavia, le metriche del piano dati sono disponibili ed è possibile usarle per monitorare l'integrità e le prestazioni dei carichi di lavoro e dei componenti di rete delle applicazioni di Azure Kubernetes.

Metriche del piano dei dati

Le metriche del piano dei dati includono le metriche dei tuoi carichi di lavoro, delle applicazioni e dello spazio dei nomi appnet-system. La rete applicativa di Azure Kubernetes offre attualmente solo il supporto per le metriche del piano dati.

Configurare le metriche del piano dati

Opzioni di configurazione dell'area di lavoro per le metriche del piano dati

Quando si abilita la raccolta di metriche Prometheus per i cluster membri della rete applicazioni di Azure Kubernetes, sono disponibili le opzioni seguenti per la configurazione dell'area di lavoro:

  • Usare un'area di lavoro di Monitoraggio di Azure esistente.
  • Omettere l'ID risorsa dell'area di lavoro e usare l'area di lavoro predefinita creata per il gruppo di risorse.
  • Creare una nuova area di lavoro di Monitoraggio di Azure.

Abilitare la raccolta delle metriche del piano dati

  1. Per abilitare la raccolta di metriche di Prometheus nel membro del cluster della rete applicazioni di Azure Kubernetes, utilizzare il comando az aks update con il parametro --azure-monitor-workspace-resource-id impostato sull'ID dell'area di lavoro esistente. Se Le metriche di Monitoraggio di Azure sono già abilitate nel cluster membro, è possibile passare al passaggio successivo.

    az aks update --enable-azure-monitor-metrics \
      --name $CLUSTER_NAME \
      --resource-group $AKS_RG \
      --azure-monitor-workspace-resource-id $WORKSPACE_ID
    
  2. Creare e applicare la seguente ConfigMap nel namespace kube-system usando il comando kubectl apply. Questo ConfigMap abilita lo scorporo di Ztunnel, Istio CNI, waypoint e l'applicazione/i carichi di lavoro.

    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. Aggiungere annotazioni ai pod delle applicazioni da scorporare.

    • prometheus.io/scrape: "true" è necessario per indicare che il pod deve essere scorporato.
    • prometheus.io/path viene usato facoltativamente per indicare il percorso in cui sono ospitate le metriche. Se omesso, per impostazione predefinita viene impostato su /metrics.
    • prometheus.io/port viene usato facoltativamente per indicare la porta in cui sono ospitate le metriche. Se omesso, Prometheus userà le porte dichiarate del contenitore dalle specifiche del pod. Per i contenitori senza porte dichiarate, Prometheus crea un target senza porta (solo IP), che richiede una configurazione di relabeling appropriata per funzionare con annotazioni di porta. È consigliabile specificare in modo esplicito la porta per garantire lo scorporo affidabile dei dati.

    L'esempio seguente definisce le annotazioni per un pod che ospita le metriche in <pod IP>:15020/metrics

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

    Potrebbero essere necessari alcuni minuti affinché il ReplicaSet delle metriche AMA carichi questa configurazione.

Visualizzare le metriche del piano dati

  1. Passare all'area di lavoro di Monitoraggio di Azure nel portale di Azure per eseguire query sulle metriche usando PromQL.

  2. Per prima cosa, genera traffico, poi seleziona le query dalle metriche esposte per visualizzare le metriche. Ad esempio, è possibile eseguire la query seguente per visualizzare il numero totale di richieste gestite da waypoint:

    # ztunnel
    istio_xds_connection_terminations_total
    
    # waypoint
    istio_requests_total
    
    # istio-cni
    istio_cni_install_ready
    

    Lo screenshot seguente mostra i risultati per le query di esempio:

    Screenshot dei risultati delle query per visualizzare il numero totale di richieste gestite da waypoint.

Elenco delle metriche esposte

Componente Metriche esposte
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
Waypoint 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

Accedere alle metriche direttamente dai proxy waypoint

Oltre alle metriche di richiesta/risposta Istio, i proxy waypoint generano anche metriche Envoy.

  • Per trovare un elenco completo delle metriche generate da Waypoint, è possibile effettuare il port-forward verso un "waypoint proxy" nel proprio "namespace" ed elencare le metriche utilizzando i seguenti comandi:

    # 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
    

Visualizzare le metriche con Grafana nel portale di Azure

  1. Importare i dashboard della community Istio.

  2. Generare traffico per il cluster membro e quindi passare all'area di lavoro di Monitoraggio di Azure nel portale di Azure.

  3. Selezionare Dashboard di monitoraggio>con Grafana.

    Gli screenshot seguenti mostrano esempi di importazione del dashboard istio Ztunnel:

    Screenshot che mostra l'opzione di importazione della dashboard nell'area di lavoro di Monitoraggio di Azure nel portale di Azure.

    Screenshot che mostra le opzioni di revisione per l'importazione del dashboard di Ztunnel nel portale di Azure.

    Screenshot che mostra le visualizzazioni del dashboard di Ztunnel in un dashboard di Grafana nel portale di Azure.

Se si vuole configurare Azure Managed Grafana invece di configurare dashboard con Grafana, vedere Creare un'area di lavoro Azure Managed Grafana utilizzando l'Azure CLI.

Per altre informazioni sull'osservabilità e il monitoraggio della rete di applicazioni di Azure Kubernetes, vedere gli articoli seguenti: