İçeriğe geç
Traefik

Traefik; Containous (sonradan Traefik Labs) tarafından geliştirilen, konteyner çağı için tasarlanmış L7 reverse proxy ve yük dengeleyicidir. Geleneksel reverse proxy’lerin aksine konfigürasyon dosyasıyla statik tanım yerine, çalışma ortamından (Docker, Kubernetes, Consul, ECS) dinamik servis keşfi yapar.

Bir servisin yeni bir replica’sı çalıştığında Traefik bunu konfigürasyon değişikliği veya reload olmadan otomatik tanır ve yük dağıtmaya başlar. Bu özellik özellikle blue-green / canary deploy’lerde, yatay ölçeklendirmede ve mikroservis ortamlarında geliştirici deneyimini ciddi iyileştirir.

Mono’nun yaklaşımı

Mono ekibi Traefik’i hem K8s ingress controller olarak hem de VM/Docker host ortamlarında reverse proxy olarak kullanır. Standart kurulum kararları:

  • TLS: Let’s Encrypt + DNS-01 challenge (Cloudflare); wildcard sertifika *.example.com.
  • Provider önceliği: K8s’te kubernetescrd (IngressRoute), VM’de file provider; ikisinin paralel çalıştığı hibrit kurulumlar mümkün.
  • Middleware kütüphanesi: Standart Mono middleware paketi - auth (forward-auth → Keycloak), rate-limit, security headers, gzip/brotli sıkıştırma, retry.
  • Observability: Prometheus metrikleri açık, access log JSON formatta Loki’ye, Tempo ile request tracing.
  • Oturum yönetimi: Gerekli uygulamalarda cookie affinity; yük dağıtım algoritması kullanılan sürümün desteklediği seçeneklerle doğrulanır.

Tipik kurulum

K8s’te desteklenen Ingress, Gateway API veya IngressRoute kaynaklarıyla yönlendirme tanımlanabilir. Deployment ile route manifest’lerinin aynı pakette tutulması değişiklikleri sürümlemeyi kolaylaştırır; Kubernetes kaynakları ayrı uzlaştırıldığından atomik güncelleme garantisi vermez. Readiness ve yayın sırası ayrıca tasarlanır.

Docker host’ta servis label’ları (traefik.http.routers.web.rule) kullanılır; docker compose dosyası tek başına route + TLS yönetimini içerir.

Yaygın sorunlar ve çözümler

  • 404 sorunu route doğru görünüyor: TLS ile HTTP arasındaki entrypoint farkı. Her iki entrypoint için ayrı router (HTTP redirect dahil).
  • ACME rate-limit: Test ortamında staging endpoint kullanın (caServer: https://acme-staging-v02.api.letsencrypt.org/directory); CI’da sertifika cache’i.
  • Yavaş ilk istek: Backend başlangıcı, DNS, TLS ve bağlantı kurulumu ayrı ölçülür; timeout artırmak varsayılan çözüm değildir.
  • Bellek artışı: Kaynak sayısı, trafik ve gözlemlenebilirlik ayarları ölçülür; sürüm notları ve yeniden üretilebilir hata bulguları incelenir.
  • WebSocket kopması: İstemci, proxy ve backend sınırları birlikte test edilir. Boş HTTP keepalive bağlantı ayarı aktif WebSocket ömrüyle karıştırılmaz.

Router, middleware ve service ayrımı

Traefik’te router gelen isteğin hangi kuralla eşleştiğini belirler; middleware isteğe veya yanıta politika uygular; service trafiğin gideceği backend’i tanımlar. Bu sorumlulukları ayrı düşünmek hata ayıklamayı kolaylaştırır. 404, eşleşmeyen bir route’tan kaynaklanabilirken 502/503 backend erişimi veya uygun hedef bulunmamasıyla ilişkili olabilir.

Middleware sırası önemlidir. Path’i değiştirdikten sonra uygulanan kimlik doğrulama, orijinal path üzerinden çalışan politikadan farklı sonuç verebilir. Forward-auth tarafında kullanılan servis ve protokolün gerçekten uyumlu olması gerekir; bir kimlik sağlayıcının adını konfigürasyona yazmak tek başına entegrasyon oluşturmaz. Retry politikası da idempotent olmayan işlemlerde çift işlem riskini gözetmelidir.

Çok replikalı Traefik’te sertifika yönetimi

Tek instance için çalışan yerleşik ACME düzeni, birden fazla instance’a dosya kopyalayarak güvenle ölçeklenmiş sayılmaz. Sertifika edinme ve yenileme koordinasyonu, depolama ve challenge trafiğinin doğru node’a ulaşması planlanmalıdır. Kubernetes ortamında cert-manager gibi ayrı bir sertifika yöneticisinin ürettiği Secret’ları kullanmak bu sorumlulukları ayırmanın bir yoludur.

DNS-01 wildcard sertifikalara imkân verir; fakat DNS API anahtarının kapsamı ve yenileme hatalarının alarmı önemlidir. Testlerde sertifika otoritesinin staging ortamı kullanılır. Uygulama erişilebilirken yaklaşan sertifika süresinin gözden kaçmaması için süre takibi ayrı yapılır.

Docker ve Kubernetes güvenlik sınırları

OrtamKritik kontrol
Docker providerDocker API erişiminin güçlü yetkiler taşıdığı hesaba katılır.
KubernetesRBAC ve namespace kapsamı ihtiyaç kadar sınırlandırılır.
DashboardYönetim arayüzü internete kimliksiz açılmaz.
Çok ekipli kümeRoute, middleware ve TLS Secret sahipliği açıkça tanımlanır.

Docker socket’i salt okunur mount etmek, API üzerindeki bütün işlemleri otomatik olarak güvenli yapmaz. Erişim modeli ayrıca sınırlandırılmalıdır. Benzer şekilde birden fazla ekibin ortak middleware değiştirebilmesi başka uygulamaların trafiğini etkileyebilir; paylaşılan bileşenlerde inceleme ve yetki ayrımı gerekir.

Mono’nun geçiş değerlendirmesi

Mevcut route’lar, sertifikalar ve uygulama protokolleri çıkarıldıktan sonra pilot servis seçilir. Başarı ölçütleri yalnızca HTTP 200 değildir: gerçek istemci IP’si, oturum açma, yönlendirme, WebSocket ve backend arızası kontrol edilir. Nginx tabanlı bir controller’dan geçişte annotation’ların birebir karşılığı olduğu varsayılmaz. Her kural test edilerek taşınır; geri dönüşte DNS ve istemci önbelleklerinin etkisi hesaba katılır.

İlgili hizmetlerimiz

Sıkça sorulan sorular

Nginx tabanlı controller yerine neden Traefik?
Traefik dinamik servis keşfi ve middleware modeliyle değerlendirilebilir. Mevcut controller’ın annotation’ları, Gateway API/Ingress desteği, bakım durumu ve uygulama davranışları karşılaştırılmadan doğrudan geçiş yapılmamalıdır.
TLS sertifikalarını nasıl yönetir?
ACME (Let’s Encrypt) entegrasyonu yerleşik: HTTP-01, TLS-ALPN-01 veya DNS-01 (wildcard için). Production’da Mono önerisi: DNS-01 + Cloudflare/Route53 entegrasyonu, certificatesResolvers üzerinden yönetilir.
Çoklu küme/cluster nasıl?
Tek Traefik birden fazla provider’ı (K8s + Docker + File) aynı anda dinleyebilir. Kümeler arası merkezi yönetim ihtiyacı ile bölge başına ayrı Traefik ve GeoDNS yaklaşımı; ağ, güvenlik ve işletim yüküne göre karşılaştırılmalıdır.
Middleware ne zaman kullanılır?
Auth, rate limit, header rewrite, IP whitelist, retry, circuit breaker - hepsi middleware. Bir route’a sırayla zincirlenebilir. Kurumsal kullanımda forward-auth middleware ile merkezi authn/authz (Keycloak/Authelia) çok yaygın.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.