23/04/2025

K8S – Ingress

Aslinda MetalLB Load balancer ve Ingress beraber oldugu zaman daha güzel. böylece LB ye atanan bir sürü IP den birisi ataniyor.

En basta Ingress i bir service olarak deploy etmemiz lazim.

Önce versiyon check : https://github.com/kubernetes/ingress-nginx

Sonra kurulum

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.12.1/deploy/static/provider/cloud/deploy.yaml 

# Check
kubectl get all -n ingress-nginx

Önce bir Ingress inceleyelim. Dashboard icin

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/backend-protocol: 'HTTPS'
    nginx.ingress.kubernetes.io/proxy-body-size: 0m
  name: dashboard-ingress
  namespace: kubernetes-dashboard
spec:
  tls:
  - hosts:
    - dashboard.dev.com
    secretName: kubernetes-dashboard-certs
  rules:
  - host: k8dashboard.opendesk.domain.tld
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: kubernetes-dashboard
            port:
              number: 443

Bu ne yapiyor.

  1. Gelen requestleri “k8dashboard.opendesk.domain.tld” icin dinliyor.
  2. TLS i “kubernetes-dashboard-certs” deki certifika ile bitiriyor.
  3. tüm traigi “/” “kubernetes-dashboard” servisine port 443 te yönlendiriyor.
  4. BE servisi ile HTTPS ile konusuyor (backend-protocol: ‘HTTPS’)
  5. Her boyutta requeste izin veriyor. (proxy-body-size: 0m)