kubernetes Nginx ingress

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.

Yorum Yapın