
Nginx Ingress Controller kurulumu – Kolay Yol
Daha önceki makalemde sizlere Kubernetes tarafından sağlanan Ingress Controller’ı Kubernetes Cluster’ınıza nasıl kurabileceğinizi anlatmıştım. Doğrusunu söylemek gerekirse bu makalede görece daha uzun yolu sizlere anlatmıştım. Helm paket yöneticisinin mimarisini ve kurulumunu sizlere paylaştıktan sonra sıra geldi Nginx Ingress Controller’ın daha kısa ve kolay şekilde kurulumununa.
En basit haliyle Helm yardımıyla ingress-nginx namespace’ine Ingress Controller kurulumu aşağıdaki tek satırlık kod ile yapılabilir;
helm install --name nginx-ingress stable/nginx-ingress --namespace ingress-nginx
Bu komut nginx-ingress adıyla bir release oluşturan bu komut saniyeler içerisinde Ingress Controller’ınızın çalışır duruma gelmesini sağlayacaktır.
Tabi bu haliyle temel yapılandırmaları ile bir Ingress Controller’ın ayağa kalkacağını söylemeliyim. Kurulum sırasında kullanabileceğiniz diğer parametreleri Ingress Controller Helm Chart dokümanında bulabilirsiniz.
Kurulumu aşağıdaki komutla biraz daha detaylı yapabilmeniz mümkün;
helm install stable/nginx-ingress --name nginx-ingress --namespace ingress-nginx \ --set controller.metrics.enabled=true \ --set controller.service.type=NodePort \ --set controller.hostNetwork=true \ --set controller.daemonset.useHostPort=true
Bu komut nginx-ingress kurulumunu NodePort üzerinden açarken Prometheus metriclerinin de aktif olmasını da yapılmasını sağlayacaktır. Sisteminizde Prometheus kurulu değilse controller.metrics.enabled parametresini ihmal edebilirsiniz.
Öte yandan henüz daha üretim ortamı kullanımına hazır bir kurulumu gerçekleştiremedik. Aşağıdaki komut nginx-ingress kurulumunu NodePort üzerinden ve DaemonSet olarak açılarak host portu üzerinden erişelirken Prometheus metriklerinin de aktif olmasını da yapılmasını sağlayacaktır;
helm install stable/nginx-ingress --name nginx-ingress --namespace ingress-nginx \ --set controller.kind=DaemonSet \ --set controller.metrics.enabled=true \ --set controller.service.type=NodePort\ --set controller.hostNetwork=true \ --set controller.daemonset.useHostPort=true
DaemonSet, NodePort ve HostNetwork parametrelerini neden kullandığımızı hatırlamayanlarınızın Kubernetes tarafından sağlanan Nginx Ingress Controller’ın elle kurulumunu paylaştığım makalemi gözden geçirmelerini tavsiye ederim.
Kurulumunuzda tam bir Prometheus entegrasyonu yapmak isterseniz, aşağıdaki komut çok işinize yarayacaktır;
helm install stable/nginx-ingress --name nginx-ingress --namespace ingress-nginx \ --set controller.kind=DaemonSet \ --set controller.metrics.enabled=true \ --set controller.service.type=NodePort\ --set controller.hostNetwork=true \ --set controller.daemonset.useHostPort=true \ --set controller.metrics.service.annotations."enable-vts-status"=true \ --set controller.metrics.service.annotations."prometheus\.io/scrape"=true \ --set controller.metrics.service.annotations."prometheus\.io/port"=10254
Herhangi bir sebepler Helm sürümünü silmek için aşağıdaki komutu kullanabilirsiniz;
helm delete nginx-ingress
Eğer sürümü kalıcı olarak silmek niyetindeyseniz, o zaman aşağıdaki komut daha çok işinize yarayacaktır;
helm delete nginx-ingress –purge