Bulut
100%

Kubernetes Ingress Controllers: NGINX vs. Traefik

K8s cluster dışından gelen HTTP/S trafiğini pod'lara yönlendiren Ingress Controller kavramı ve iki popüler çözümün analizi.

Genel Bakış

Kubernetes ortamında çalışan uygulamalar (Pod'lar) varsayılan olarak dış dünyadan (internetten) izole bir şekilde sanal bir iç ağda çalışırlar. Dışarıdan gelen trafiği içeri almak ve doğru servise yönlendirmek için Ingress kuralları ve bu kuralları işleten bir Ingress Controller gerekir.

Sorun

Yüzlerce mikroservisin çalıştığı bir K8s cluster'ınız var. /api isteklerini backend podlarına, /images isteklerini ise frontend podlarına yönlendirmek istiyorsunuz. Bunu bulut sağlayıcının (AWS ELB vb.) Load Balancer'ları ile yapmak isterseniz, her servis için yeni bir dış IP ve Load Balancer almanız gerekir. Bu da faturaların inanılmaz derecede şişmesine ve yönetimin zorlaşmasına neden olur.

Çözüm: Tek Bir Giriş Kapısı

Ingress Controller, cluster'a tek bir Load Balancer (ve tek bir IP) üzerinden dahil olup, HTTP host ve path tabanlı yönlendirme (Layer 7 routing) yapan akıllı bir ters vekildir.

Örnek Ingress YAML:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: main-ingress
spec:
rules:
- host: sirket.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: backend-api
port:
number: 8080

Teknik Detaylar

Sektörde iki büyük oyuncu vardır:
NGINX Ingress: En köklü ve yaygın olanıdır. Yüksek performanslıdır ve NGINX conf dosyalarına alışkın yöneticiler için harikadır. Ancak konfigürasyon her değiştiğinde NGINX'in arka planda kendini yeniden yüklemesi (reload) gerekir, bu da çok dinamik ortamlarda anlık bağlantı kopmalarına yol açabilir.
Traefik Ingress: Kubernetes ile çalışmak için özel tasarlanmış modern bir araçtır. Otomatik hizmet keşfi (service discovery) yapar ve kurallar değiştiğinde sıfır kesintiyle (no reload) kendini adapte eder. Ayrıca Let's Encrypt üzerinden otomatik SSL sertifikası alma özelliği varsayılan olarak çok güçlüdür.

Sonuç

Geleneksel web trafiği ve statik kurallar için NGINX Ingress çok sağlam bir tercihtir. Ancak mikroservislerin sürekli yaratılıp yok edildiği, modern ve yüksek otomasyonlu CI/CD ortamları için Traefik sunduğu dinamik yapıyla bir adım öne çıkmaktadır.

İlgili Wiki'ler

Tümünü Gör