Sdílet prostřednictvím


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, supporteda 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é.