Kubernetes kümeniz büyüdükçe kube-proxy ve iptables zincirlerinin CPU'yu tüketmesini engelleyin. CNCF mezunu Cilium (saf eBPF mimarisi), Calico (kanıtlanmış L3/L4 ağ politikaları) ve Flannel (minimal düz ağ) eklentilerinin paket yönlendirme CPU maliyetini, RAM ayak izini ve Hubble gözlemlenebilirlik avantajını simüle edin.
Standart kube-proxy ile çalışan Calico/Flannel altyapılarında her paket, çekirdekteki binlerce iptables kuralını doğrusal (O(N)) olarak tarar. Cilium ise eBPF Hash Maps ile O(1) sabit zamanlı yönlendirme yaparak bu darboğazı tamamen ortadan kaldırır.
Yüksek trafikli ve çok servisli mikroservis kümelerinde iptables yükünü sıfırlayarak en düşük CPU tüketimini ve L7 güvenlik politikalarını sağlar.
Orta ölçekli geleneksel Linux altyapılarında kanıtlanmış L3/L4 güvenlik politikaları için kararlı ve yaygın kullanılan çözümdür.
Yalnızca 65 MB RAM ayak izine ihtiyaç duyan, güvenlik politikası izolasyonu aramayan küçük test ve IoT cihaz kümeleri için uygundur.
VDS kümenizde minimum gecikme ve maksimum paket verimi için önerilen CNI kurulum parametreleri.
# 1. Cilium Helm reposunu ekleyin
helm repo add cilium https://helm.cilium.io/
helm repo update
# 2. kube-proxy'yi devre dışı bırakıp saf eBPF ve Hubble UI ile kurun
helm install cilium cilium/cilium --version 1.16.1 \
--namespace kube-system \
--set kubeProxyReplacement=true \
--set k8sServiceHost=10.0.0.10 \
--set k8sServicePort=6443 \
--set hubble.enabled=true \
--set hubble.ui.enabled=true \
--set hubble.relay.enabled=true
# 3. Hubble CLI ile ağ akışlarını canlı izleyin
cilium hubble port-forward&
hubble observe --followKubernetes ilk tasarlandığında servis yönlendirmesi için Linux çekirdeğinin iptables ve conntrack mekanizmaları kullanıldı. Ancak modern mikroservis mimarilerinde 500 servis ve 2.000 pod bulunan bir kümede, çekirdekte 10.000'in üzerinde iptables kuralı birikir. Gelen her ağ paketi bu kuralları doğrusal (O(N)) olarak baştan sona tarar; bu da 10 Gbps ve üzeri trafikte CPU'nun %15 ila %25'inin yalnızca paket yönlendirmeye harcanmasına ve gecikme (latency) dalgalanmalarına yol açar.
Linux çekirdeğine dinamik programlar enjekte eden eBPF teknolojisi sayesinde kube-proxy bileşenini tamamen çöpe atar. Servis yönlendirmesini çekirdek seviyesindeki BPF Hash Maps ile O(1) sabit zamanda (mikrosaniyeler altında) yapar. Ayrıca yan konteyner (sidecar) gerektirmeden L7 (HTTP methodu, path, gRPC servisi) filtreleme ve dahili WireGuard şifrelemesi sunar.
Tigera tarafından geliştirilen Calico, BGP yönlendirmesi ve güçlü L3/L4 ağ politikaları (NetworkPolicy) ile tanınır. Klasik Linux ağ araçlarıyla (iptables, ipset, IPVS) mükemmel uyumludur. Yeni sürümlerinde deneysel eBPF veri düzlemi sunsa da varsayılan modda geniş kural tabloları yüksek trafikli ortamlarda işlemci yükü üretebilir.
CoreOS tarafından geliştirilen Flannel, yalnızca pod'ların birbiriyle konuşmasını sağlayan basit bir VXLAN / Host-GW katmanıdır.Hiçbir güvenlik politikası (NetworkPolicy) uygulayamaz.Tüm pod'lar birbirine sınırsız erişebilir. Ancak düğüm başına yalnızca ~65 MB RAM tüketmesi sebebiyle izole edge ve test kümelerinde popülerliğini korur.
İstio veya Linkerd gibi geleneksel servis ağları (service mesh), her pod'un yanına Envoy proxy enjekte ederek düğüm RAM'ini hızla tüketir. Cilium'un Hubble bileşeni ise doğrudan çekirdek soket katmanını dinleyerek sıfır yan konteyner ek yüküyle HTTP durum kodlarını, TCP paket kayıplarını ve DNS sorgularını gerçek zamanlı topoloji grafiğinde gösterir.