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. |
Azure Kubernetes Service