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
- U moet een revisie
asm-1-22
of hoger hebben. Zie de documentatie voor de invoegtoepassing Istio voor meer informatie over het uitvoeren van secundaire versie-upgrades.
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
, supported
en 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. |
Azure Kubernetes Service