CodeBlanks Logo Icon CodeBlanks

Envoy sidecar

Envoy sidecar proxy'yi öğrenirsin.

Envoy sidecar

Enjeksiyon her pod'a iki şey ekler: bir init container (istio-init ya da CNI eklentisi) pod'un iptables kurallarını, tüm gelen ve giden trafik Envoy'a gidecek şekilde ayarlar; istio-proxy container'ı da Envoy'u çalıştırır. Uygulama hâlâ http://db:5432'ye bağlandığını sanır; aslında bağlantı yerel Envoy'dan geçer.

$ kubectl get pod api-6b5c4d3e2-abcde -n magaza -o jsonpath='{.spec.containers[*].name}'
api istio-proxy
$ kubectl logs api-6b5c4d3e2-abcde -n magaza -c istio-proxy --tail=2
[2026-11-03T10:12:01Z] "GET /urunler HTTP/1.1" 200 - via_upstream - "-" 0 4821 12 11 "-" "curl/8.10" "…" "api:8000"

Sidecar kaynakları ve hariç tutma

Her sidecar bellek ve CPU harcar; yüzlerce pod'da bu toplam önemlidir. Kaynaklar annotation ile ayarlanır; bazı pod'lar (ör. Job'lar) enjeksiyondan çıkarılabilir:

  template:
    metadata:
      annotations:
        sidecar.istio.io/proxyCPU: "50m"
        sidecar.istio.io/proxyMemory: "64Mi"
      labels:
        sidecar.istio.io/inject: "false"     # bu pod mesh dışında

Uygulama Sidecar'ı incele

İki komut yaz: magaza'daki api-6b5c4d3e2-abcde pod'unun container adlarını jsonpath='{.spec.containers[*].name}' ile yazdır; aynı pod'un istio-proxy container'ının son 5 log satırını göster.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl get pod api-6b5c4d3e2-abcde -n magaza -o jsonpath='{.spec.containers[*].name}'
kubectl logs api-6b5c4d3e2-abcde -n magaza -c istio-proxy --tail=5

Beklenen çıktı

api istio-proxy
[2026-11-03T10:12:01Z] "GET /urunler HTTP/1.1" 200 - via_upstream - "-" 0 4821 12 11
[2026-11-03T10:12:02Z] "GET /saglik HTTP/1.1" 200 - via_upstream - "-" 0 15 1 1

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Uygulama kodunun mesh için değiştirilmesi gerekir mi?

  • Hayır; trafik iptables ile şeffaf biçimde vekile yönlendirilir Doğru cevap
  • Evet, Envoy kütüphanesi eklenmeli
  • Yalnızca Go uygulamalarında
  • Yalnızca portlar değişir

Açıklama: İzleme başlıklarını (trace header) iletmek için küçük bir uygulama desteği yine de gerekebilir.

2 Bu pod'u enjeksiyondan çıkar.

Soru
      labels:
        sidecar.istio.io/inject: ____
Cevap
      labels:
        sidecar.istio.io/inject: "false"

Açıklama: Değer metin olarak "false" yazılır.

3 Eşleştir.

Kavram Anlamı
istio-init iptables kuralları
istio-proxy Envoy container'ı
proxyMemory Sidecar bellek ayarı
inject: "false" Mesh dışında

Uzman bölümündeki tüm dersler