Telemetri-API för Istio-baserat tjänstnättillägg för Azure Kubernetes Service
Istio kan generera mått, distribuerade spårningar och åtkomstloggar för alla arbetsbelastningar i nätet. Det Istio-baserade tjänstnättillägget för Azure Kubernetes Service (AKS) tillhandahåller alternativ för telemetrianpassning via den delade MeshConfig och Istio Telemetry API v1
för Istio-tilläggsversioner asm-1-22
och högre.
Kommentar
Även om Istio MeshConfig även innehåller alternativ för att konfigurera telemetri globalt i nätet, erbjuder Telemetri-API:et mer detaljerad kontroll över telemetriinställningar per tjänst eller per arbetsbelastning. Eftersom Istio-communityn fortsätter att investera i telemetri-API:et är det nu den bästa metoden för telemetrikonfiguration. Vi rekommenderar att du migrerar till telemetri-API:et för att konfigurera telemetri som ska samlas in i nätet.
Förutsättningar
- Du måste ha revision
asm-1-22
eller högre. Information om hur du utför delversionsuppgraderingar finns i dokumentationen för istio-tilläggsuppgradering.
Konfigurera telemetriresurser
I följande exempel visas hur Envoy-åtkomstloggning kan aktiveras i nätet för Istio-tillägget via telemetri-API:et med ( asm-1-22
justera revisionen efter behov). Vägledning om andra telemetri-API-anpassningar för tillägget finns i avsnittet Omfång för telemetri-API och Istio-dokumentationen.
Distribuera exempelprogram
Märk namnområdet för sidovagnsinmatning:
kubectl label ns default istio.io/rev=asm-1-22
Distribuera programmet sleep
och ange SOURCE_POD
miljövariabeln:
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})
httpbin
Distribuera sedan programmet:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/httpbin/httpbin.yaml
Aktivera Envoy-åtkomstloggning med Istio Telemetry-API:et
Distribuera följande Istio v1
Telemetry API-resurs för att aktivera Envoy-åtkomstloggning för hela nätet:
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
Testa åtkomstloggar
Skicka en begäran från sleep
till httpbin
:
kubectl exec "$SOURCE_POD" -c sleep -- curl -sS -v httpbin:8000/status/418
Kontrollera att åtkomstloggarna är synliga för sleep
podden:
kubectl logs -l app=sleep -c istio-proxy
Du bör se följande utdata:
[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
Kontrollera nu att åtkomstloggarna är synliga för httpbin
podden:
kubectl logs -l app=httpbin -c istio-proxy
Du bör se följande utdata:
[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
Stödomfång för telemetri-API
För tillägget Istio-tjänstnät för AKS klassificeras fälten Telemetry API som allowed
, supported
och blocked
värden. Mer information om Istio-tilläggets supportprincip för funktioner och mesh-konfigurationer finns i dokumentet om stödprincip för Istio-tillägg.
Följande telemetri-API-konfigurationer är antingen allowed
eller supported
för Istio-tillägget. Alla fält som inte ingår i den här tabellen är blocked
.
Api-fält för telemetri | Stöds/tillåts | Anteckningar |
---|---|---|
accessLogging.match |
Stöds | - |
accessLogging.disabled |
Stöds | - |
accessLogging.providers |
Tillåtet | envoy Standardåtkomstloggprovidern stöds. En hanterad upplevelse för logginsamling och frågor finns i Azure Monitor Container Insights Log Analytics. Logginsamlings- och analyslösningar från tredje part eller öppen källkod stöds allowed inte. |
metrics.overrides |
Stöds | - |
metrics.providers |
Tillåtet | Måttinsamling med Azure Monitor Managed Prometheus stöds. Mått från tredje part eller med öppen källkod som skrapar lösningar stöds allowed inte. |
tracing.* |
Tillåtet | Alla spårningskonfigurationer stöds allowed inte. |
Azure Kubernetes Service