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 httpbin
bir 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ı , supported
ve blocked
değerleri olarak allowed
sı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. |
Azure Kubernetes Service