EMZETT.
Giriş yap

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