Kubernetes Ingress Nedir?
-
Yayımlama Tarihi 07 Oca 2026
-
Son Güncellenme 07 Oca 2026
-
Okuma Süresi 10 dakika
-
Yazar Can Şentay
ÜRÜNLER
Kubernetes Ingress Nedir?
Kubernetes kümenizde bulunan uygulamalarınıza küme dışından trafik yönlendirmek istediğinizde, Ingress devreye girer. Ingress, HTTP ve HTTPS trafiğini yönetmemizi sağlayan bir Kubernetes kaynağıdır. Daha da basite indirmemiz gerekirse kümeye dışarıdan gelen istekleri belirlediğimiz servislere yönlendiren bir polis gibi çalışır. Diğer yöntemlere göre NodePort, LoadBalancer) daha esnek, güvenli ve yönetilebilir bir çözümdür.
Ingress tek bir IP adresi üzerinden kümede bulunan birden fazla servisin üzerinde domain bazlı yönlendirme, SSL/TLS sonlandırma ve path bazlı routing gibi gelişmiş özellikleri kullanarak uygulamalarınızı profesyonel şekilde yönetmenize olanak sağlar. Özellikle mikroservis mimarilerinde, farklı servislere tek bir giriş noktasından ulaşmak hem güvenlik hem de maliyet açısından büyük avantajdır.
-
Ingress Controller Nedir ve Nasıl Çalışır?
Kubernetes kümemizde sadece Ingress tanımlamamız yeterli değildir. Hayatta olduğu gibi trafik polislerini de denetleyen ve yönlendiren Emniyet Genel Müdürlüğüne yani bir Ingress Controller’a Traefik, HAProxy, NGINX ihtiyacımız vardır.
Ingress Controller sürekli olarak Kubernetes API’sini izler ve siz yeni bir ingress kaynağı oluşturduğunuzda bunları otomatik bir şekilde algılayarak kendi konfigürasyon dosyalarını günceller ve trafiği yeni kurallara göre yönetmeye başlar.
Ingress Controller'ı Kubernetes kümenize helm chart kullanarak veya manifest dosyalarıyla manuel olarak dağıtabilirsiniz. Kurulum sonrası trafiğin yönlendirilebilir olması için ingress controller'ın bir LoadBalancer veya NodePort servisi ile dış dünyaya açılması gerekir.
-
Temel Ingress Yapılandırması ve Alternatif Yaklaşımlar
Temel bir Ingress kaynak yapılandırması ile başlayalım:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: simple-ingress annotations: spec: ingressClassName: rules: - host: uygulama.example.com http: paths: - path: / pathType: Prefix backend: service: name: frontend-service port: number: 80Bu yapılandırmada
uygulama.example.comadresine gelen tüm isteklerfrontend-serviceservisine yönlendirilecektir vepathTypeolarak Prefix kullandığınızda dolayı belirtilen yol ile başlayan tüm istekler eşleşir.
Eğer Prefix yerine Exact seçeneğini kullansaydık tam bir eşleşme de sağlayabilirdik.
Kubernetes 1.19 ve sonrası sürümlerde, Ingress kaynaklarının hangi Ingress Controller tarafından yönetileceğini belirtmek içinspec.ingressClassNamealanı kullanılmaktadır. Kısacası bu polisi deneteleyen kim sorusunun cevabını tanımladığımız alan.Annotations bölümü ise Ingress Controller'ın davranışını değiştirir. URL rewrite, timeout ayarları, rate limiting gibi birçok özelliği annotation'lar aracılığıyla yönetebilirsiniz fakat her Ingress Controller'ın desteklediği annotation'lar farklı olabilir, bu yüzden burada bir değişiklik veya ekleme yapmadan önce kullandığınız controller'ın güncel dokümantasyonunu kontrol etmelisiniz.
-
Path Bazlı ve Host Bazlı Yönlendirme
Ingress'in güçlü özelliklerinden biri, yapılandırılmada verilmiş farklı path ve host'lara göre trafiği yönlendirebilmesidir. Aşağıdaki örnekte aynı domain altında
/apiyol’una gelen istekleri backend servisinize,/webyol’una gelenleri ise frontend servisinize yönlendirebilirsiniz:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: coklu-path-ingress annotations: spec: ingressClassName: rules: - host: example.com http: paths: - path: /api pathType: Prefix backend: service: name: api-service port: number: 8080 - path: /web pathType: Prefix backend: service: name: web-service port: number: 3000Host bazlı yönlendirme ise birbirinden farklı subdomain'ler (
api.example.com,admin.example.com) için farklı servisler kullanmanıza olanak tanır. Bu yaklaşım özellikle multi-tenant uygulamalarda çok kullanışlıdır. -
SSL/TLS Sonlandırma ve Sertifika Yönetimi
Ingress Controller ile HTTPS trafiği yönetmek için SSL/TLS sertifikalarınızı kubernetes kümeniz içerisinde secret objesini kullanarak oluşturabilirsiniz veya Cert-manager gibi araçlar kullanarak Let's Encrypt'ten otomatik sertifika alabilir ve yönetebilirsiniz:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: guvenli-ingress annotations: cert-manager.io/cluster-issuer: "letsencrypt-prod" spec: tls: - hosts: - guvenli.example.com secretName: guvenli-tls-secret rules: - host: guvenli.example.com http: paths: - path: / pathType: Prefix backend: service: name: uygulama-service port: number: 443 -
Sonuç
Kubernetes kümelerinde tek bir giriş noktasından birden fazla servise erişim, domain/path bazlı yönlendirme ve HTTP/HTTPS trafiğini yönetmek için Ingress Controller ve Ingress ikilisi güçlü ve esnek bir çözümdür.
Ingress Controller'lardan NGINX, Traefik , HAProxy) birini seçerek, NodePort veya LoadBalancer'a göre daha yönetilebilir ve maliyet-etkin bir mimari elde edebilirsiniz.
ÜRÜNLER
Benzer Makaleler
-
Mar 14,2024ChatGPT vs Gemini
Yapay zeka devlerinden OpenAI'ın ChatGPT’sinin mi yoksa Google'ın Gemini'ının mı size daha uygun olduğunu biliyor musunuz? Her ikisinin de kendine özgü güçlü ve zayıf yönleri bulunuyor.Gelin bu güçlü ve zayıf yönleri birlikte inceleyelim!
Daha Fazla -
Şub 20,2024Dijitalleşen Meslekler
Teknolojinin hızlı evrimi, yapay zeka, bulut bilişim ve platform mühendisliğine olan talebi artırıyor, yeni meslekler ortaya çıkıyor ve mevcut meslekler dijitalleşiyor.
Daha Fazla -
Şub 01,2024“Forbes Teknoloji Konseyi”nin Türkiye’den yeni üyesi DTG CEO’su Tolga Dinçer oldu
Tolga Dinçer, dünya çapında başarılı iş insanlarının davet aldığı “Forbes Teknoloji Konseyi”ne kabul edildi.
Daha Fazla