Aracılığıyla paylaş


Azure Kubernetes Service için Istio tabanlı hizmet ağı eklentisi için telemetri API'si

Istio ağ içindeki tüm iş yükleri için ölçümler, dağıtılmış izlemeler ve erişim günlükleri oluşturabilir. Azure Kubernetes Service (AKS) için Istio tabanlı hizmet ağı eklentisi, paylaşılan MeshConfig ve Istio için Istio Telemetri API'sinin v1 ikincil düzeltmeleri asm-1-22 ve üzeri aracılığıyla telemetri özelleştirme seçenekleri sağlar.

Not

Istio MeshConfig, telemetriyi ağ genelinde genel olarak yapılandırma seçenekleri de sağlarken, Telemetri API'si hizmet başına veya iş yükü temelinde telemetri ayarları üzerinde daha ayrıntılı denetim sunar. Istio topluluğu Telemetri API'sine yatırım yapmaya devam ettikçe artık telemetri yapılandırması için tercih edilen yöntemdir. Ağ içinde toplanacak telemetriyi yapılandırmak için Telemetri API'sine geçişi öneririz.

Önkoşullar

  • Düzeltme asm-1-22 veya üzeri bir sürümde olmanız gerekir. İkincil sürüm yükseltmeleri gerçekleştirme hakkında bilgi için Istio eklenti yükseltme belgelerine bakın.

Telemetri kaynaklarını yapılandırma

Aşağıdaki örnekte, Envoy erişim günlüğünün Kullanarak Telemetri API'si asm-1-22 aracılığıyla Istio eklentisi için ağ üzerinde nasıl etkinleştirilebileceği gösterilmektedir (düzeltmeyi gerektiği gibi ayarlayın). Eklentinin diğer Telemetri API'si özelleştirmeleri hakkında yönergeler için Telemetri API'sinin destek kapsamı bölümüne ve Istio belgelerine bakın.

Örnek uygulamaları dağıtma

Sepet ekleme için ad alanını etiketle:

kubectl label ns default istio.io/rev=asm-1-22

Uygulamayı dağıtın sleep ve ortam değişkenini SOURCE_POD ayarlayın:

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})

Ardından uygulamayı dağıtın httpbin :

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/httpbin/httpbin.yaml

Istio Telemetri API'siyle Envoy erişim günlüğünü etkinleştirme

Ağın tamamı için Envoy erişim günlüğünü etkinleştirmek için aşağıdaki Istio v1 Telemetri API'sini dağıtın:

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

Erişim günlüklerini test et

uygulamasından sleep adresine httpbinbir istek gönderin:

kubectl exec "$SOURCE_POD" -c sleep -- curl -sS -v httpbin:8000/status/418

Erişim günlüklerinin pod için sleep görünür olduğunu doğrulayın:

kubectl logs -l app=sleep -c istio-proxy

Aşağıdaki çıkışı görmeniz gerekir:

[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

Şimdi pod için httpbin erişim günlüklerinin görünür olduğunu doğrulayın:

kubectl logs -l app=httpbin -c istio-proxy

Aşağıdaki çıkışı görmeniz gerekir:

[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

Telemetri API'si destek kapsamı

AKS için Istio hizmet ağı eklentisi için Telemetri API'si alanları , supportedve blocked değerleri olarak allowedsınıflandırılır. Istio eklentisinin özellikler ve ağ yapılandırmaları için destek ilkesi hakkında daha fazla bilgi için Istio eklenti destek ilkesi belgesine bakın.

Aşağıdaki Telemetri API'si yapılandırmaları, Istio eklentisi için veya supported şeklindedirallowed. Bu tabloya dahil olmayan herhangi bir alan şeklindedir blocked.

Telemetri API'si Alanı Desteklenen/İzin Verilen Notlar
accessLogging.match Desteklenir -
accessLogging.disabled Desteklenir -
accessLogging.providers İzin Verilir Varsayılan envoy erişim günlüğü sağlayıcısı desteklenir. Günlük toplama ve sorgulama için yönetilen bir deneyim için bkz . Azure İzleyici Container Insights Log Analytics. Üçüncü taraf veya açık kaynak günlük toplama ve analiz çözümleri allowed desteklenmez.
metrics.overrides Desteklenir -
metrics.providers İzin Verilir Azure İzleyici Yönetilen Prometheus ile ölçüm koleksiyonu desteklenir. Üçüncü taraf veya açık kaynak ölçüm kazıma çözümleri allowed desteklenmez.
tracing.* İzin Verilir Tüm izleme yapılandırmaları allowed desteklenmez.