
Kubernetes Ingress Nedir?
Ingress, dış dünyadan Kubernetes kümesindeki uygulamalara erişim sağlamak için kullanılan bir kubernetes nesnesidir. Belirli bir host adına veya yoluna gelen istekleri belirli bir servise yönlendirebilir. Örneğin, example.com/app adresine gelen bir isteği,app-service adlı bir Kubernetes servisine yönlendirebilir.

Nginx Ingress Controller nedir?
NGINX Ingress Controller, bir Kubernetes kümesinde çalışan uygulamalara gelen istekleri yönlendirmek için NGINX’i kullanır. Ingress nesnelerini izler ve belirli kurallara göre gelen istekleri farklı hizmetlere yönlendirir. Kubernetes ekosisteminde NGINX’in yanı sıra çeşitli diğer Ingress Controller’lar da bulunmaktadır. Bunlardan en çok bilinenleri şunlardır: traefik, HAProxy, Envoy, Ambassador.
MetalLB Kurulumu
MetalLB (Metal Load Balancer), Kubernetes kümeleri için bir ağ yük dengeleyicisi (load balancer) çözümüdür. Aşağıdaki komut ile kubernetes kümesine, MetalLB kurulumunu gerçekleştirebilirsiniz.Dış IP (external-ip) Havuzu Oluşturulması
MetalLB’nin kullanımı için bir IP adresi havuzu oluşturulması gerekmektedir. Bir yaml dosyası oluştun ve aşağıda bulunan IPAddressPool türündeki içeriği ekleyiniz.Nginx Controller Kurulumu
Helm kullanarak kubernetes kümesine nginx controller kurulumunu yapabilirsiniz. Helm’in kullanılma amacı, Kubernetes kümesinde uygulamaların ayağa kaldırılması için gereken tüm yapılandırma dosyalarını yönetmek ve kurulum sürecini kolaylaştırmaktır. Bu adımda önce helm kurulumunu yapıp daha sonra Nginx controller reposunu ekleyiniz.

Apinizer Deploy Örneği
Aşağıdaki komut çıktısında Apinizer Yönetim Arayüzü’nün çalıştığı namespace ve POD gözükmektedir.

Ingress Objesi Oluşturmak
Ingress kullanmadan önce, uygulamanızın hangi URL’lere nasıl erişileceğini tanımlamak için bir Ingress kaynağı oluşturulması gerekir. Ingress kaynağı, Nginx Ingress Controller tarafından izlenerek gelen istekleri hedeflere yönlendiren kuralları belirtir. Bir yaml dosyası oluşturup ilgili konfigürasyonları kendimize göre düzenleyerek, Kubernetes’te bir Ingress objesi oluşturun.Sertifika Kullanıyorsanız:
Aşağıdaki key, cert ve namespace alanlarını kendi ortamınıza göre düzenleyebilirsiniz./ yoluna sahip istekler bu kurala uyar.
pathType: Prefix Bu alanda, belirtilen yolun bir önek olduğu belirtilir. Yani / yoluna sahip istekler / önekiyle başlayan tüm yollara uyar.
backend: service: name: manager Bu alanda isteklerin yönlendirileceği hedef servisin adı yazılır.
port: number: 8080 Bu alanda servisinizin port numarası (8080) belirtilir.
Bu uygulamada, sertifika kullanmadan devam edeceğiz.
Yaml dosyasını kullanarak bir ingress nesnesi oluşturun.

DNS Tanımlama
İlk adım olarak,/etc/hosts dosyasını bir metin düzenleyici ile açın.
Bu dosya, IP adresleri ve karşılık gelen ana bilgisayar isimlerinin eşleştirildiği bir yerel DNS (Domain Name System) dosyasıdır.
Sonuç
Test adımında curl komutu kullanılabilir veya tarayıcı üzerinden erişim sağlanabilir. demo.apinizer.com/apinizer/management/health adresine istek atıldığında sonuç şu şekilde çıkmalıdır:


