Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Istio kann Metriken, verteilte Ablaufverfolgungen und Zugriffsprotokolle für alle Workloads im Mesh generieren. Das Istio-basierte Service-Mesh-Add-On für Azure Kubernetes Service (AKS) bietet Optionen für die Telemetriedatenanpassung über die freigegebene MeshConfig-Konfiguration und die Istio-Telemetrie-API v1 für kleinere Revisionen für das Istio-Add-On asm-1-22 und höher.
Hinweis
Während die Istio MeshConfig-Konfiguration auch Optionen zum globalen Konfigurieren von Telemetriedaten im Mesh bietet, ermöglicht die Telemetrie-API eine präzisere Kontrolle der Telemetriedateneinstellungen pro Dienst oder pro Workload. Da die Telemetrie-API weiterhin von der Istio-Community optimiert wird, ist sie jetzt die bevorzugte Methode für die Telemetriedatenkonfiguration. Wir empfehlen die Migration zur Telemetrie-API zum Konfigurieren der Telemetriedaten, die im Mesh erfasst werden sollen.
Voraussetzungen
- Sie müssen Revision
asm-1-22oder höher verwenden. Informationen zu Nebenversionsupgrades finden Sie in der Dokumentation zu Istio-Add-On-Upgrades.
Konfigurieren von Telemetriedatenressourcen
Im folgenden Beispiel wird veranschaulicht, wie die Envoy-Zugriffsprotokollierung im Mesh mithilfe von asm-1-22 über die Telemetrie-API für das Istio-Add-On aktiviert werden kann (Revision je nach Bedarf anpassen). Anleitungen zu anderen Telemetrie-API-Anpassungen für das Add-On finden Sie im Abschnitt Unterstützungsbereich der Telemetrie-API und in der Istio-Dokumentation.
Bereitstellen von Beispielanwendungen
Bezeichnen Sie den Namespace für die Sidecar-Injektion:
kubectl label ns default istio.io/rev=asm-1-22
Stellen Sie die sleep-Anwendung bereit, und legen Sie die Umgebungsvariable SOURCE_POD fest:
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})
Stellen Sie dann die httpbin-Anwendung bereit:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/httpbin/httpbin.yaml
Aktivieren der Envoy-Zugriffsprotokollierung mit der Istio-Telemetrie-API
Stellen Sie die folgende Istio-Telemetrie-API-Ressource (v1) bereit, um die Envoy-Zugriffsprotokollierung für das gesamte Mesh zu aktivieren:
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
Testen von Zugriffsprotokollen
Senden Sie eine Anforderung von sleep an httpbin:
kubectl exec "$SOURCE_POD" -c sleep -- curl -sS -v httpbin:8000/status/418
Überprüfen Sie, ob Zugriffsprotokolle für den sleep-Pod sichtbar sind:
kubectl logs -l app=sleep -c istio-proxy
Die folgende Ausgabe wird angezeigt.
[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
Überprüfen Sie nun, ob Zugriffsprotokolle für den httpbin-Pod sichtbar sind:
kubectl logs -l app=httpbin -c istio-proxy
Die folgende Ausgabe wird angezeigt.
[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
Unterstützungsbereich der Telemetrie-API
Für das Istio-Service-Mesh-Add-On für AKS werden Telemetrie-API-Felder als allowed-, supported- und blocked-Werte klassifiziert. Weitere Informationen zur Unterstützungsrichtlinie des Istio-Add-Ons für Features und Meshkonfigurationen finden Sie im Dokument zur Unterstützungsrichtlinie für das Istio-Add-On.
Die folgenden Telemetrie-API-Konfigurationen sind entweder allowed oder supported für das Istio-Add-On. Ein Feld, das in dieser Tabelle nicht enthalten ist, ist blocked.
| Telemetrie-API-Feld | Unterstützt/ Zulässig | Hinweise |
|---|---|---|
accessLogging.match |
Unterstützt | - |
accessLogging.disabled |
Unterstützt | - |
accessLogging.providers |
Zulässig | Der envoy-Standardzugriffsprotokollanbieter wird unterstützt. Eine verwaltete Funktion für die Protokollsammlung und -abfrage finden Sie im Artikel Azure Monitor-Containererkenntnisse für Log Analytics. Drittanbieter- oder Open-Source-Protokollsammlungs- und Analyselösungen sind allowed, werden jedoch nicht unterstützt. |
metrics.overrides |
Unterstützt | - |
metrics.providers |
Zulässig | Die Metriksammlung mit Azure Monitor Managed Prometheus wird unterstützt. Drittanbieter- oder Open-Source-Metrikscrapinglösungen sind allowed, werden jedoch nicht unterstützt. |
tracing.* |
Zulässig | Alle Ablaufverfolgungskonfigurationen sind allowed, werden jedoch nicht unterstützt. |