Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Istio może generować metryki, rozproszone ślady i dzienniki dostępu dla wszystkich obciążeń w siatce. Dodatek siatki usług oparty na systemie Istio dla usługi Azure Kubernetes Service (AKS) udostępnia opcje dostosowywania telemetrii za pośrednictwem udostępnionej aplikacji MeshConfig i interfejsu API v1 telemetrii Istio dla dodatku Istio w wersji pomocniczej i nowszych asm-1-22 .
Uwaga
Chociaż funkcja Istio MeshConfig udostępnia również opcje konfigurowania telemetrii globalnie w obrębie siatki, interfejs API telemetrii oferuje bardziej szczegółową kontrolę nad ustawieniami telemetrii dla poszczególnych usług lub dla poszczególnych obciążeń. Ponieważ społeczność Istio nadal inwestuje w interfejs API telemetrii, jest to teraz preferowana metoda konfiguracji telemetrii. Zachęcamy do migracji do interfejsu API telemetrii w celu skonfigurowania telemetrii do zbierania w siatkach.
Wymagania wstępne
- Musisz być w wersji
asm-1-22lub nowszej. Aby uzyskać informacje na temat wykonywania uaktualnień wersji pomocniczych, zobacz dokumentację dodatku Istio.
Konfigurowanie zasobów telemetrii
W poniższym przykładzie pokazano, jak można włączyć rejestrowanie dostępu aplikacji Envoy w całej siatce dodatku Istio za pośrednictwem interfejsu API telemetrii przy użyciu polecenia asm-1-22 (dostosuj poprawkę zgodnie z potrzebami). Aby uzyskać wskazówki dotyczące innych dostosowań interfejsu API telemetrii dla dodatku, zobacz sekcję Zakres pomocy technicznej interfejsu API telemetrii i dokumentację istio.
Wdrażanie przykładowych aplikacji
Oznacz przestrzeń nazw pod kątem wstrzykiwania przyczepki:
kubectl label ns default istio.io/rev=asm-1-22
Wdróż aplikację sleep i ustaw zmienną środowiskową SOURCE_POD :
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})
Następnie wdróż aplikację httpbin :
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/httpbin/httpbin.yaml
Włączanie rejestrowania dostępu do usługi Envoy za pomocą interfejsu API telemetrii Istio
Wdróż następujący zasób interfejsu API telemetrii Istio v1 , aby włączyć rejestrowanie dostępu usługi Envoy dla całej siatki:
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
Testowanie dzienników dostępu
Wyślij żądanie z sleep do :httpbin
kubectl exec "$SOURCE_POD" -c sleep -- curl -sS -v httpbin:8000/status/418
Sprawdź, czy dzienniki dostępu są widoczne dla zasobnika sleep :
kubectl logs -l app=sleep -c istio-proxy
Powinny zostać wyświetlone następujące dane wyjściowe:
[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
Teraz sprawdź, czy dzienniki dostępu są widoczne dla zasobnika httpbin :
kubectl logs -l app=httpbin -c istio-proxy
Powinny zostać wyświetlone następujące dane wyjściowe:
[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
Zakres obsługi interfejsu API telemetrii
W przypadku dodatku siatki usługi Istio dla usługi AKS pola interfejsu API telemetrii są klasyfikowane jako allowed, supportedi blocked wartości. Aby uzyskać więcej informacji na temat zasad pomocy technicznej dodatku Istio dla funkcji i konfiguracji siatki, zobacz dokument Zasady pomocy technicznej dodatku Istio.
Następujące konfiguracje interfejsu API telemetrii są albo allowed supported dla dodatku Istio. Każde pole, które nie znajduje się w tej tabeli, to blocked.
| Pole interfejsu API telemetrii | Obsługiwane/dozwolone | Uwagi |
|---|---|---|
accessLogging.match |
Obsługiwane | - |
accessLogging.disabled |
Obsługiwane | - |
accessLogging.providers |
Dozwolone | Domyślny envoy dostawca dziennika dostępu jest obsługiwany. Aby uzyskać zarządzane środowisko zbierania dzienników i wykonywania zapytań, zobacz Azure Monitor Container Insights Log Analytics. Rozwiązania do zbierania i analizy dzienników innych firm lub typu open source są allowed nieobsługiwane. |
metrics.overrides |
Obsługiwane | - |
metrics.providers |
Dozwolone | Kolekcja metryk z usługą Azure Monitor Managed Prometheus jest obsługiwana. Rozwiązania do złomowania metryk innych firm lub open source są allowed nieobsługiwane. |
tracing.* |
Dozwolone | Wszystkie konfiguracje śledzenia są allowed nieobsługiwane. |