müfettiş
Moderatör
- Katılım
- 20 Ocak 2024
- Mesajlar
- 325
- Tepkime puanı
- 1
- Puanları
- 18
Kubernetes Ingress Controller (Nginx) Kurulumu ve SSL Yönetimi
Giriş: Kümeye Açılan Kapı
Kubernetes kümenizde (Cluster) 50 tane mikroservis çalışıyor. Bunları dış dünyaya (internete) nasıl açacaksınız?- NodePort: Her servis için sunucuda bir port açmak (Örn: 30001, 30002). Güvensiz ve yönetilemez.
- LoadBalancer: Her servis için Bulut sağlayıcıdan (AWS/Azure) bir IP adresi kiralamak. Çok pahalı.
- Çözüm: Ingress.
Ingress Controller Nedir?
Ingress bir "kural listesidir" (YAML dosyası). Bu kuralları uygulayan yazılıma ise Ingress Controller denir. En popüleri Nginx Ingress Controller'dır.Çalışma mantığı şöyledir:
- Kullanıcı api.sirket.com adresine gider.
- Trafik Load Balancer üzerinden Ingress Controller'a (Nginx) gelir.
- Ingress kurallara bakar: "Host api.sirket.com ise trafiği backend-service Pod'una gönder."
- Trafik doğru konteynere ulaşır.
Nginx Ingress Controller Kurulumu
Helm (K8s paket yöneticisi) kullanarak kurulum çok basittir:Bu komut, kümenizde Nginx çalışan bir Pod ve ona bağlı bir Load Balancer servisi oluşturur. Artık tek bir IP adresiniz vardır.Bash
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx<br>helm install my-nginx ingress-nginx/ingress-nginx<br>
Kural Yazma (Ingress Resource)
Trafiği yönlendirmek için şöyle bir YAML yazarız:
YAML:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ornek-ingress
spec:
rules:
- host: site.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: frontend-service
port:
number: 80
- host: api.site.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: backend-service
port:
number: 5000
Bu kural, site.com'u frontend'e, api.site.com'u backend'e yönlendirir.
Otomatik SSL: Cert-Manager ve Let's Encrypt
Modern web'de HTTPS zorunludur. Yüzlerce sertifikayı elle yönetmek imkansızdır.Cert-Manager, Kubernetes içinde çalışan bir araçtır.- Otomatik olarak Let's Encrypt'e gider.
- Alan adının size ait olduğunu doğrular.
- Ücretsiz SSL sertifikasını alır ve Ingress'e yükler.
- Sertifika süresi dolmadan (90 gün) otomatik yeniler.