Konteyner Orkestrasyonunda Service Mesh (Istio, Linkerd) Nedir?

müfettiş

Moderatör
Katılım
20 Ocak 2024
Mesajlar
325
Tepkime puanı
1
Puanları
18

Konteyner Orkestrasyonunda Service Mesh (Istio, Linkerd) Nedir?​


Giriş: Mikroservislerin Trafik Polisi​

5 tane mikroservisiniz varken her şey kolaydır. Ama 100 mikroservisiniz olduğunda kaos başlar.

  • Servis A, Servis B'yi çağırırken hata alırsa kaç kere tekrar denemeli (Retry)?
  • Servisler arasındaki trafiği kim şifreliyor (Encryption)?
  • Hangi servis hangi servisi ne kadar yavaşlatıyor?
Bu sorunları çözmek için her uygulamanın içine kod yazmak (örn: Java'da kütüphane eklemek) zordur. Service Mesh, bu sorunları kod değişikliği yapmadan, altyapı seviyesinde çözen bir katmandır.

Nasıl Çalışır? (Sidecar Mimarisi)​

Service Mesh (örneğin Istio), Kubernetes'teki her Pod'un yanına gizlice küçük bir konteyner (Sidecar Proxy - genellikle Envoy) ekler.Uygulamanız dışarıya veri gönderdiğinde, trafik doğrudan gitmez; önce bu Proxy'ye uğrar. Proxy, trafiği şifreler, yönlendirir veya engeller. Tüm bu işlemler uygulamanızdan habersiz gerçekleşir.

Service Mesh'in 3 Süper Gücü​

1. Güvenlik (mTLS)​

Normalde küme içindeki trafik şifresizdir (HTTP). Bir hacker içeri sızarsa trafiği dinleyebilir.Service Mesh, Servis A'dan Servis B'ye giden trafiği otomatik olarak şifreler (Mutual TLS). Sertifika yönetimini otomatik yapar. Geliştiricinin SSL ile uğraşmasına gerek kalmaz.

2. Trafik Kontrolü (Canary Deployment)​

Uygulamanın v2 sürümünü yayına aldınız ama emin değilsiniz.Mesh'e şu kuralı girebilirsiniz: "Trafiğin %95'i v1'e gitsin, sadece %5'i v2'ye gitsin."Eğer v2'de hata yoksa oranı yavaş yavaş artırırsınız.

3. Gözlemlenebilirlik (Observability)​

Trafik Proxy üzerinden geçtiği için, Mesh size muazzam bir harita çıkarır. "Servis C, Servis D'ye cevap verirken 500ms gecikiyor" gibi detayları grafik üzerinde (Kiali gibi araçlarla) görebilirsiniz.

Istio vs. Linkerd​

  • Istio: Google ve IBM destekli. En popüler, en çok özellikli ama en karmaşık ve ağır olanıdır ("Feature-rich but heavy").
  • Linkerd: Sadece hıza ve basitliğe odaklanır. Çok hafiftir, kurulumu kolaydır ("Ultralight"). Rust diliyle yazılmıştır.

Sonuç: İhtiyacınız Var mı?​

Service Mesh bedava değildir; CPU ve RAM tüketir, karmaşıklığı artırır.

  • 50'den az mikroservisiniz varsa: Muhtemelen ihtiyacınız yok. K8s Ingress ve standart Network Policy yeterlidir.
  • Finans/Banka gibi yüksek güvenlik ve gözlemlenebilirlik gerekiyorsa: Service Mesh hayat kurtarır.
 
Geri
Üst