Condividi tramite


API di telemetria per il componente aggiuntivo mesh di servizi basato su Istio per servizio Azure Kubernetes

Istio può generare metriche, tracce distribuite e accedere ai log per tutti i carichi di lavoro nella mesh. Il componente aggiuntivo Mesh del servizio basato su Istio per servizio Azure Kubernetes (servizio Azure Kubernetes) fornisce opzioni di personalizzazione dei dati di telemetria tramite MeshConfig condiviso e l'API v1 Di telemetria Istio per i componenti aggiuntivi Istio e versioni asm-1-22 successive.

Nota

Anche se Istio MeshConfig offre anche opzioni per la configurazione dei dati di telemetria a livello globale nella mesh, l'API telemetria offre un controllo più granulare sulle impostazioni di telemetria per ogni servizio o per carico di lavoro. Poiché la community di Istio continua a investire nell'API telemetria, è ora il metodo preferito per la configurazione dei dati di telemetria. È consigliabile eseguire la migrazione all'API telemetria per configurare i dati di telemetria da raccogliere nella mesh.

Prerequisiti

  • È necessario essere in revisione asm-1-22 o superiore. Per informazioni su come eseguire aggiornamenti della versione secondaria, vedere la documentazione relativa all'aggiornamento del componente aggiuntivo Istio.

Configurare le risorse di telemetria

Nell'esempio seguente viene illustrato come abilitare la registrazione dell'accesso envoy nella mesh per il componente aggiuntivo Istio tramite l'API telemetria usando asm-1-22 (modificare la revisione in base alle esigenze). Per indicazioni su altre personalizzazioni dell'API di telemetria per il componente aggiuntivo, vedere la sezione Ambito di supporto dell'API telemetria e la documentazione di Istio.

Distribuire applicazioni di esempio

Etichettare lo spazio dei nomi per l'inserimento sidecar:

kubectl label ns default istio.io/rev=asm-1-22

Distribuire l'applicazione sleep e impostare la SOURCE_POD variabile di ambiente:

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/sleep/sleep.yaml
export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name})

Distribuire quindi l'applicazione httpbin :

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/httpbin/httpbin.yaml

Abilitare la registrazione dell'accesso a Envoy con l'API Di telemetria Istio

Distribuire la risorsa API Istio v1 Telemetry seguente per abilitare la registrazione dell'accesso Envoy per l'intera mesh:

cat <<EOF | kubectl apply -n aks-istio-system -f -
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: mesh-logging-default
spec:
  accessLogging:
  - providers:
    - name: envoy
EOF

Testare i log di accesso

Inviare una richiesta da sleep a httpbin:

kubectl exec "$SOURCE_POD" -c sleep -- curl -sS -v httpbin:8000/status/418

Verificare che i log di accesso siano visibili per il sleep pod:

kubectl logs -l app=sleep -c istio-proxy

Verrà visualizzato l'output seguente:

[2024-08-13T00:31:47.690Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 12 11 "-" "curl/8.9.1" "cdecaca5-5964-48f3-b42d-f474dfa623d5" "httpbin:8000" "10.244.0.13:8080" outbound|8000||httpbin.default.svc.cluster.local 10.244.0.12:53336 10.0.112.220:8000 10.244.0.12:42360 - default

Verificare ora che i log di accesso siano visibili per il httpbin pod:

kubectl logs -l app=httpbin -c istio-proxy

Verrà visualizzato l'output seguente:

[2024-08-13T00:31:47.696Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 2 1 "-" "curl/8.9.1" "cdecaca5-5964-48f3-b42d-f474dfa623d5" "httpbin:8000" "10.244.0.13:8080" inbound|8080|| 127.0.0.6:55401 10.244.0.13:8080 10.244.0.12:53336 outbound_.8000_._.httpbin.default.svc.cluster.local default

Ambito di supporto dell'API di telemetria

Per il componente aggiuntivo Mesh del servizio Istio per il servizio Azure Kubernetes, i campi dell'API di telemetria vengono classificati come allowedvalori , supportede blocked . Per altre informazioni sui criteri di supporto del componente aggiuntivo Istio per le funzionalità e le configurazioni mesh, vedere il documento dei criteri di supporto dei componenti aggiuntivi Istio.

Le configurazioni dell'API di telemetria seguenti sono allowed o supported per il componente aggiuntivo Istio. Qualsiasi campo non incluso in questa tabella è blocked.

Campo DELL'API di telemetria Supportato/Consentito Note
accessLogging.match Supportata -
accessLogging.disabled Supportata -
accessLogging.providers Consentito Il provider di log di accesso predefinito envoy è supportato. Per un'esperienza gestita per la raccolta e l'esecuzione di query sui log, vedere Log Analytics di Analisi dei contenitori di Monitoraggio di Azure. Le soluzioni di analisi e raccolta di log open source o di terze parti non sono allowed supportate.
metrics.overrides Supportata -
metrics.providers Consentito La raccolta di metriche con Prometheus gestito di Monitoraggio di Azure è supportata. Le soluzioni di scraping di metriche open source o di terze parti non sono allowed supportate.
tracing.* Consentito Tutte le configurazioni di traccia sono allowed ma non supportate.