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 allowed
valori , supported
e 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. |
Azure Kubernetes Service