rainbow-halfCommunication

Sistemde gereksiz bürokrasiyi kaldırmak performans getirir.

  • Konteynerden-Konteynere: Aynı Pod içindeki Container'lar birbirleriyle konuşurken internete çıkmazlar. Tıpkı senin bilgisayarında çalışan iki programın birbiriyle konuşması gibi localhost kullanırlar. Bu, sıfır gecikme demektir.

  • Poddan-Poda: Arada NAT yok. Pod A, Pod B'yi aradığında hat direkt bağlanır. Bu "Düz Ağ" (Flat Network) yapısı, işlemciye binen yükü azaltır.

2. Büyüme Yeteneği

Sistemi kurdun, harika çalışıyor. Peki ya kullanıcı sayısı 100 katına çıkarsa?

  • IP-per-Pod Modeli: Kubernetes'te her Pod'un kendine ait IP'si vardır.

    • Eski yöntem: Bir sunucuda 10 uygulama çalıştırırsan port çakışması olmasın diye uğraşırdın (Biri 80, biri 8080, biri 8081...).

    • K8s yöntemi: Her Pod'un kendi IP'si olduğu için hepsi 80 portunu kullanabilir. Kimse kimsenin ayağına basmaz. Bu sayede sistemi binlerce Pod'a kadar büyütebilirsin.

  • Pod'lar, Servisler ve Node'lar için IP havuzları baştan ayrılmıştır. Karmaşa çıkmaz.

3. Kaos Yönetimi

Pod'lar sürekli doğar ve ölür. Bu kaosu nasıl yönetiriz?

  • Buradaki kilit kavram Soyutlama. Arka planda Pod'ların IP'leri sürekli değişse de, Service (ClusterIP) dediğimiz yapı sabit durur.

    • Bir şirketin müşteri hizmetleri numarasını (Service) ararsın. O gün telefonu hangi çalışanın (Pod) açtığı seni ilgilendirmez. Numara hep aynıdır.

  • Dış Erişim: Dışarıdan gelen trafiği (External Traffic) düzenli bir şekilde içeri almak için NodePort veya LoadBalancer kapıları kullanılır.

4. CNI Eklentileri

Kubernetes, ağ işini tek bir yöntemle yapmaya zorlamaz. İhtiyaca göre "Taşeron" seçebilirsin.

  • CNI (Container Network Interface): Kubernetes'in "Ağ işlerini yapacak usta" arayüzüdür.

  • Kubelet (Node yöneticisi), yeni bir Pod geldiğinde CNI eklentisine (örn: Calico, Flannel) der ki: "Buna kablo çek, IP ver."

  • Esneklik:

    • Güvenlik mi istiyorsun? -> Calico kullan (Network Policy desteği güçlü).

    • Hız mı istiyorsun? -> Cilium kullan (eBPF teknolojisiyle çok hızlı).

    • Basitlik mi istiyorsun? -> Flannel kullan.


Özetle: Kubernetes'te iletişim mimarisi; hız (NAT'sız yapı), büyüme (her Pod'a IP) ve sürdürülebilirlik (Service yapısı) üzerine kuruludur. CNI ise bu teoriyi pratiğe döken araçtır.

Last updated