Doplněk Telemetry API pro síť služby Istio pro Azure Kubernetes Service
Istio může generovat metriky, distribuované trasování a přístupové protokoly pro všechny úlohy v síti. Doplněk Sítě služeb založený na Istio pro Službu Azure Kubernetes Service (AKS) poskytuje možnosti přizpůsobení telemetrie prostřednictvím sdílené služby MeshConfig a rozhraní API v1
telemetrie Istio pro Istio pro menší revize asm-1-22
a vyšší.
Poznámka:
I když Istio MeshConfig také poskytuje možnosti pro globální konfiguraci telemetrie napříč sítí, rozhraní API telemetrie nabízí podrobnější kontrolu nad nastavením telemetrie pro jednotlivé služby nebo úlohy. Vzhledem k tomu, že komunita Istio nadále investuje do rozhraní API telemetrie, je teď upřednostňovanou metodou konfigurace telemetrie. Doporučujeme migrovat do rozhraní API telemetrie pro konfiguraci telemetrie, která se má shromažďovat v síti.
Požadavky
- Musíte být u revize
asm-1-22
nebo vyšší. Informace o tom, jak provádět upgrady podverze, najdete v dokumentaci k doplňku Istio.
Konfigurace prostředků telemetrie
Následující příklad ukazuje, jak je možné povolit protokolování přístupu envoy přes síť pro doplněk Istio prostřednictvím rozhraní API telemetrie pomocí asm-1-22
(podle potřeby upravit revizi). Pokyny k dalším přizpůsobením rozhraní API telemetrie pro doplněk najdete v části Rozsah podpory rozhraní API telemetrie a dokumentaci k Istiu.
Nasazení ukázkových aplikací
Označte obor názvů pro injektáž sajdkáře:
kubectl label ns default istio.io/rev=asm-1-22
sleep
Nasaďte aplikaci a nastavte proměnnou SOURCE_POD
prostředí:
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})
Pak aplikaci nasaďte httpbin
:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/httpbin/httpbin.yaml
Povolení protokolování přístupu envoy pomocí rozhraní API pro telemetrii Istio
Nasaďte následující prostředek rozhraní API telemetrie Istio v1
, který povolí protokolování přístupu envoy pro celou síť:
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
Testování protokolů přístupu
Odeslání žádosti z sleep
httpbin
:
kubectl exec "$SOURCE_POD" -c sleep -- curl -sS -v httpbin:8000/status/418
Ověřte, že jsou pro pod sleep
viditelné protokoly přístupu:
kubectl logs -l app=sleep -c istio-proxy
Měl by se zobrazit následující výstup:
[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
Teď ověřte, že jsou pro pod httpbin
viditelné přístupové protokoly:
kubectl logs -l app=httpbin -c istio-proxy
Měl by se zobrazit následující výstup:
[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
Rozsah podpory rozhraní API telemetrie
U doplňku Istio service mesh pro AKS jsou pole rozhraní API telemetrie klasifikována jako allowed
, supported
a blocked
hodnoty. Další informace o zásadách podpory doplňku Istio pro funkce a konfigurace sítí najdete v dokumentu o zásadách podpory doplňku Istio.
Následující konfigurace rozhraní API telemetrie jsou buď allowed
nebo supported
pro doplněk Istio. Jakékoli pole, které není součástí této tabulky, je blocked
.
Pole rozhraní API telemetrie | Podporované nebo povolené | Poznámky |
---|---|---|
accessLogging.match |
Podporováno | - |
accessLogging.disabled |
Podporováno | - |
accessLogging.providers |
Povoleno | Podporuje se výchozí envoy zprostředkovatel protokolu přístupu. Spravované prostředí pro shromažďování protokolů a dotazování najdete v tématu Azure Monitor Container Insights Log Analytics. Řešení pro shromažďování a analýzy protokolů třetích stran nebo open source jsou allowed ale nepodporovaná. |
metrics.overrides |
Podporováno | - |
metrics.providers |
Povoleno | Podporuje se shromažďování metrik se spravovaným nástrojem Prometheus služby Azure Monitor. Řešení pro výstřižky metrik třetích stran nebo opensourcových metrik jsou allowed ale nepodporovaná. |
tracing.* |
Povoleno | Všechny konfigurace trasování jsou allowed ale nepodporované. |
Azure Kubernetes Service