Kubernetes Nginx Ingress Kurulumu
Bu yazımızda Kubernetes nginx ingress kurulumu nasıl yapılır bunu ele alacağız. Öncelikle on-premise kubernetes ortamımızda trafiği nodelara aktarabilmek için iki seçenek var; birincisi bizimde tercih ettiğimiz loadbalancer ile diğeri ise nodePort yardımıyla. Load balancer için external bir çözüm kullanabiliriz (External load balancer kurulumu için HAProxy ve Keepalived ile H/A Load Balancer Kurulumu konulu makalemi inceleyebilirsiniz) yada ek bir sunucuya veya donanıma ihtiyaç duymadan Kubernetes ortamımızda metalLB kullanabiliriz.
Öncelikle metalLB kurulumuna başlayalım;
MetalLB için bir namespace oluşturuyoruz.
# kubectl create ns metallb-system
Oluşturduğumuz namespace'e deploy ediyoruz.
# kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/metallb.yaml
Aşağıdaki komutu yalnızca ilk seferde göndermeniz yeterli olacaktır.
# kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
İçinde belirlediğimiz ip aralığının olacağı bir configmap oluşturup deploy ediyoruz.
# cat > config.yml <<EOF apiVersion: v1 kind: ConfigMap metadata: namespace: metallb-system name: config data: config: | address-pools: - name: default protocol: layer2 addresses: - 192.168.1.240-192.168.1.250 EOF
Config'de local networkten ulaşılabilir ve boş bir aralık vermemiz gerekiyor biz 192.168.1.240-192.168.1.250 aralığını veriyoruz.
# kubectl apply -f config.yml -n metallb-system
Şimdi nginx ingress controller için bir namespace oluşturuyoruz. Dilerseniz default namespace'de de deploy edebilirsiniz.
# kubectl create ns ingress-nginx
Helm ile kubernetes nginx ingress kurulumu yapıyoruz.
# helm install ingress-nginx stable/nginx-ingress -n ingress-nginx \ --set controller.kind=DaemonSet \ --set controller.service.externalTrafficPolicy=Local
Nginx Ingress controller kurulduğunda metalLB'den bir load balancer ip alacaktır. Bizim örneğimizde verdiğimiz aralığın ilk ip'si 192.168.1.240 alıyor. Bu aşamada kubernetes ortamımıza nginx ingress controller kurulumunu bitirmiş oluyoruz.
Eğer servislerinizi nasıl ingress ile domain üzerinden erişilebilir kılmayı bilmiyorsanız Kubernetes Ortamında Servislere Domain ile Erişmek başlıklı yazımıza göz atabilirsiniz.
Hola! Ben Ali. Hepsiburada’da DevOps Engineer olarak çalışmaktayım. Microservis mimarisine özgü altyapı tasarlamayı, kurmayı ve operasyonel süreçlerini yönetmeyi seviyorum. Ayrıca şu sıralar GO Lang öğrenmek için de emeklemekteyim.
Emeğinize sağlık