Kubernetes Ingress: HTTP trafiğini kümeye yönlendirmek
Kısaca: Dışarıdan gelen hangi web adreslerinin Kubernetes kümesindeki hangi hizmetlere gideceğini belirleyen bir kurallar kümesi.
Biraz daha ayrıntılı: Kubernetes’teki pod’lara dışarıdan doğrudan ulaşılamaz. Bir hizmet (service) onları küme içinde bulunabilir kılar. İnternetten gelen bir web isteğinin ulaşması için ayrıca bir ingress’e ihtiyaç vardır: “shop.example.com, shop hizmetine gider” gibi kuralları tarif eder. Bir ingress denetleyicisi (örneğin nginx veya Traefik) kuralları uygular.
Ayrıntılı
Örnek
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: shop
spec:
tls:
- hosts: [shop.example.com]
secretName: shop-tls
rules:
- host: shop.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service: { name: shop, port: { number: 80 } }Burada shop.example.com ana makinesi bir TLS sertifikasıyla shop hizmetine yönlendirilir.
Denetleyicinin görevleri
Denetleyici kümede bir pod olarak çalışır ve ingress kaynaklarını okur. Ters vekil sunucu olarak çalışır: bağlantıları kabul eder, TLS’i sonlandırır, ana makineye ve yola göre hizmeti seçer ve pod’larına dağıtır. HTTP’yi HTTPS’ye yönlendirme, zaman aşımları veya hız sınırları gibi ek işlevler açıklamalarla (annotations) denetlenir.
Otomatik sertifikalar
cert-manager ile sertifikalar (örneğin Let’s Encrypt’ten) otomatik istenebilir ve yenilenebilir. Ingress o zaman yalnızca sırrın adına başvurur.
Gateway API
Gateway API halef olarak görülür. Rolleri daha kesin ayırır (altyapı işletmecisi bir ağ geçidi sağlar, uygulama ekipleri rotalar oluşturur) ve HTTP’den fazlasını destekler. Klasik ingress yine de yaygındır.
Ayrıca bak: Kubernetes temelleri, nginx ve ters vekil sunucu, Let’s Encrypt ve TLS sertifikaları, Yük dengeleyici