Delen via


Telemetrie-API voor service mesh-invoegtoepassing op basis van Istio voor Azure Kubernetes Service

Istio kan metrische gegevens, gedistribueerde traceringen en toegangslogboeken genereren voor alle workloads in de mesh. De op Istio gebaseerde service mesh-invoegtoepassing voor Azure Kubernetes Service (AKS) biedt telemetrieaanpassingsopties via de gedeelde MeshConfig en de Istio Telemetry-API v1 voor Istio-invoegtoepassing kleine revisies asm-1-22 en hoger.

Notitie

Hoewel de Istio MeshConfig ook opties biedt voor het wereldwijd configureren van telemetrie over de mesh, biedt de Telemetrie-API gedetailleerdere controle over telemetrie-instellingen per service of per workload. Omdat de Istio-community blijft investeren in de Telemetrie-API, is het nu de voorkeursmethode voor telemetrieconfiguratie. We raden u aan om te migreren naar de Telemetrie-API voor het configureren van telemetriegegevens die moeten worden verzameld in de mesh.

Vereisten

Telemetriebronnen configureren

In het volgende voorbeeld ziet u hoe logboekregistratie van Envoy-toegang kan worden ingeschakeld in de mesh voor de Istio-invoegtoepassing via de Telemetrie-API met behulp van asm-1-22 (pas de revisie indien nodig aan). Zie de sectie Ondersteuningsbereik voor telemetrie-API en de Istio-documentatie voor hulp bij andere aanpassingen van de telemetrie-API voor de invoegtoepassing.

Voorbeeldtoepassingen implementeren

Label de naamruimte voor sidecar-injectie:

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

Implementeer de sleep toepassing en stel de SOURCE_POD omgevingsvariabele in:

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})

Implementeer vervolgens de httpbin toepassing:

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

Logboekregistratie van Envoy-toegang inschakelen met de Istio Telemetry-API

Implementeer de volgende Istio v1 Telemetry-API-resource om logboekregistratie van Envoy-toegang in te schakelen voor de gehele 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

Toegangslogboeken testen

Een aanvraag verzenden van sleep naar httpbin:

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

Controleer of toegangslogboeken zichtbaar zijn voor de sleep pod:

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

U moet de volgende uitvoer zien:

[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

Controleer nu of toegangslogboeken zichtbaar zijn voor de httpbin pod:

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

U moet de volgende uitvoer zien:

[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

Ondersteuningsbereik voor telemetrie-API

Voor de invoegtoepassing Istio-service-mesh voor AKS worden telemetrie-API-velden geclassificeerd als allowed, supporteden blocked waarden. Zie het ondersteuningsbeleid van de Istio-invoegtoepassing voor functies en mesh-configuraties voor meer informatie over het ondersteuningsbeleid van de Istio-invoegtoepassing.

De volgende telemetrie-API-configuraties zijn allowed ofwel voor supported de Istio-invoegtoepassing. Een veld dat niet in deze tabel is opgenomen, is blocked.

Telemetrie-API-veld Ondersteund/toegestaan Notes
accessLogging.match Ondersteund -
accessLogging.disabled Ondersteund -
accessLogging.providers Toegestaan De standaardprovider envoy voor toegangslogboeken wordt ondersteund. Zie Azure Monitor Container Insights Log Analytics voor een beheerde ervaring voor het verzamelen en opvragen van logboeken. Verzamelings- en analyseoplossingen van derden of opensourcelogboeken worden allowed echter niet ondersteund.
metrics.overrides Ondersteund -
metrics.providers Toegestaan Verzameling met metrische gegevens met Azure Monitor Managed Prometheus wordt ondersteund. Scrapingoplossingen van derden of opensource-metrische gegevens worden allowed echter niet ondersteund.
tracing.* Toegestaan Alle traceringsconfiguraties worden allowed echter niet ondersteund.