Kubernetes Nginx Ingress For Kubeadm
Yukarıda bağlantısını bırakmış olduğum döküman ‘da, ingress nedir ve nasıl yapılandırırız konusuna girip, detaylı olarak bahsetmiştim.
Bu yazıda, kendimizin kubeadm ile kurduğumuz kubernetes ortamlarında, ingress nasıl yapılandıracağımıza bakacağız.
Yapılandırmaya geçmeden önce,
Yukarıda paylaştığım MetalLB LB dökümanına göre, cluster ortamımıza MetalLB LB servisini kurmamız gerekiyor. Kurulumu tamamladıktan sonra ardından ingress kurulumuna geçebiliriz.
Adım 1: Helm reposuna ingress ‘i kuracağımız repoyu eklememiz gerekiyor.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Adım 2 : Helm repolarını güncellememiz gerekiyor.
helm repo update
Adım 3: ingress ‘i cloud ortamlarında kullanmayacağımız için, default chart değerleri üzerinde oynama yapmamız gerekiyor. Bunun için, değerleri bir dosyaya yazıyoruz. ve ek olarak ingress için bir namespace oluşturuyoruz.
helm show values ingress-nginx/ingress-nginx > /tmp/ingress-nginx.yaml
kubectl create ns ingress-nginx
Adım 4: Değiştirmemiz gereken 3 kısmı aşağıdaki gibi güncelliyoruz.
Adım 5: Düzenlediğimiz değişkenleri kullanarak, helm kullanarak ingress ‘i cluster ortamımıza kuruyoruz.
helm install myingress ingress-nginx/ingress-nginx -n ingress-nginx — values /tmp/ingress-nginx.yaml
Kurulum tamamlandı, “kubectl get all -n ingress-nginx” komutunu kullanarak, ingress için kurulan tüm objeleri listeleyebiliriz.

Sıra artık bir deployment objesi deploy edip, bunu ingress ile dışarı açmaya geldi.
Bir deployment objesi oluşturuyoruz; aşağıdaki örnekte mevcut.
kubectl apply -f nginx-deploy-main.yaml
Ardından, aşağıdaki komut ile bu deployment ‘ın 80 portunu expose ediyoruz.
kubectl expose deployment.apps/nginx-deploy-main — port 80

Ardından ingress servisimizi oluşturup, yapılandırmada göreceğiniz üzere yukarıda expose ettiğimiz port’a trafiği yönlendiriyoruz.
kubectl apply -f ingress-resource-1.yaml
Ardından, hosts dosyanıza, nginx.example.com ve atanan IP adresini girdiğinizde sayfaya erişebileceksiniz.


Docs: