Bagikan melalui


API Telemetri untuk add-on jala layanan berbasis Istio untuk Azure Kubernetes Service

Istio dapat menghasilkan metrik, jejak terdistribusi, dan log akses untuk semua beban kerja dalam jala. Add-on jala layanan berbasis Istio untuk Azure Kubernetes Service (AKS) menyediakan opsi kustomisasi telemetri melalui MeshConfig bersama dan API v1 Telemetri Istio untuk revisi asm-1-22 minor add-on Istio dan yang lebih tinggi.

Catatan

Meskipun Istio MeshConfig juga menyediakan opsi untuk mengonfigurasi telemetri secara global di seluruh jala, API Telemetri menawarkan kontrol yang lebih terperinci atas pengaturan telemetri berdasarkan per layanan atau per beban kerja. Karena komunitas Istio terus berinvestasi dalam API Telemetri, sekarang menjadi metode yang disukai untuk konfigurasi telemetri. Kami mendorong migrasi ke API Telemetri untuk mengonfigurasi telemetri yang akan dikumpulkan dalam jala.

Prasyarat

  • Anda harus berada di revisi asm-1-22 atau lebih tinggi. Untuk informasi tentang cara melakukan peningkatan versi minor, lihat dokumentasi peningkatan add-on Istio.

Mengonfigurasi sumber daya Telemetri

Contoh berikut menunjukkan bagaimana pengelogan akses Envoy dapat diaktifkan di seluruh jala untuk add-on Istio melalui API Telemetri menggunakan asm-1-22 (sesuaikan revisi sesuai kebutuhan). Untuk panduan tentang kustomisasi API Telemetri lainnya untuk add-on, lihat bagian cakupan dukungan API Telemetri dan dokumentasi Istio.

Menyebarkan aplikasi sampel

Beri label namespace untuk injeksi sidecar:

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

Sebarkan sleep aplikasi dan atur SOURCE_POD variabel lingkungan:

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

Kemudian, sebarkan httpbin aplikasi:

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

Mengaktifkan pengelogan akses Envoy dengan API Telemetri Istio

Sebarkan sumber daya ISTIO v1 Telemetry API berikut untuk mengaktifkan pengelogan akses Envoy untuk seluruh jala:

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

Menguji log akses

Kirim permintaan dari sleep ke httpbin:

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

Verifikasi bahwa log akses terlihat untuk sleep pod:

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

Anda akan menemukan output berikut:

[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

Sekarang, verifikasi bahwa log akses terlihat untuk httpbin pod:

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

Anda akan menemukan output berikut:

[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

Cakupan dukungan API Telemetri

Untuk add-on jala layanan Istio untuk AKS, bidang API Telemetri diklasifikasikan sebagai allowed, supported, dan blocked nilai. Untuk informasi selengkapnya tentang kebijakan dukungan add-on Istio untuk fitur dan konfigurasi jala, lihat dokumen kebijakan dukungan add-on Istio.

Konfigurasi API Telemetri berikut adalah allowed atau supported untuk add-on Istio. Bidang apa pun yang tidak disertakan dalam tabel ini adalah blocked.

Bidang API Telemetri Didukung/Diizinkan Catatan
accessLogging.match Didukung -
accessLogging.disabled Didukung -
accessLogging.providers Diizinkan Penyedia log akses default envoy didukung. Untuk pengalaman terkelola untuk pengumpulan dan kueri log, lihat Analitik Log Azure Monitor Container Insights. Solusi pengumpulan log dan analitik allowed pihak ketiga atau sumber terbuka tetapi tidak didukung.
metrics.overrides Didukung -
metrics.providers Diizinkan Pengumpulan metrik dengan Azure Monitor Managed Prometheus didukung. Solusi allowed pengikisan metrik pihak ketiga atau sumber terbuka tetapi tidak didukung.
tracing.* Diizinkan Semua konfigurasi pelacakan allowed tetapi tidak didukung.