Ana içeriğe geç

Nginx Ingress Kurulumu: Kubernetes Üzerinde Helm ile Trafik ve TLS Yönetimi

Bu Rehberde Ne Öğreneceksiniz?

Bu rehberde Kubernetes kümenizde Nginx Ingress Controller kurulumunu öğreneceksiniz.
Helm ile trafik yönlendirecek, domain bazlı routing yapacak ve Let’s Encrypt ile HTTPS sağlayacaksınız.


Teknik Özet

Bu rehber, Kubernetes üzerinde Nginx Ingress kurulumu anlatır.
Amaç, servisleri dış dünyaya güvenli ve merkezi biçimde açmaktır.


1. Test Uygulamalarını Oluşturma

Ingress yönlendirmesini test etmek için iki örnek servis oluşturulur.

kubectl create -f hello-kubernetes-first.yaml
  • Bu komut ilk test uygulamasını ve servisini oluşturur.


kubectl create -f hello-kubernetes-second.yaml
  • Bu komut ikinci test uygulamasını ve servisini oluşturur.

2. Helm ile Nginx Ingress Controller Kurulumu

  1. Ingress kuralları için Nginx tabanlı kontrolcü yüklenir.

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
  • Bu komut Nginx Ingress Helm deposunu ekler.

helm repo update
  • Bu komut Helm chart listesini günceller.

helm install nginx-ingress ingress-nginx/ingress-nginx \
--set controller.publishService.enabled=true
  • Bu komut Nginx Ingress Controller’ı Load Balancer ile kurar.

3. Ingress Kaynağı Oluşturma

  1. Domain bazlı yönlendirme için Ingress tanımı yapılır.

kubectl apply -f hello-kubernetes-ingress.yaml
  • Bu komut domainleri ilgili servislere bağlar.

Tarayıcıdan:

  • hw1.domain.com

  • hw2.domain.com

adresleri test edilir.


4. Cert-Manager ile HTTPS Sağlama

  1. TLS sertifikaları otomatik üretmek için Cert-Manager kurulur.

kubectl create namespace cert-manager
  • Bu komut Cert-Manager için ayrı namespace oluşturur.

helm repo add jetstack https://charts.jetstack.io
helm repo update
  • Bu komut Cert-Manager Helm deposunu ekler.


helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--set installCRDs=true
  • Bu komut Cert-Manager’ı kümede aktif eder.

5. Let’s Encrypt ClusterIssuer Tanımlama

  1. Otomatik sertifika üretimi için ClusterIssuer oluşturulur.

kubectl apply -f production_issuer.yaml
  • Bu komut Let’s Encrypt üretim ortamını tanımlar.

6. Ingress’e TLS Ekleme

  1. Ingress tanımına TLS yapılandırması eklenir.

kubectl apply -f hello-kubernetes-ingress.yaml
  • Bu komut HTTPS sertifikalarını Ingress’e bağlar.

Sertifika durumunu kontrol edin:


kubectl describe certificate hello-kubernetes-tls
  • Bu komut sertifikanın başarıyla üretildiğini gösterir.

Sıkça Sorulan Sorular (SSS)

1. Ingress neden Service yerine kullanılır? Ingress, tek Load Balancer ile birden fazla servisi yönetir.

2. Helm neden tercih edilir? Kurulum, güncelleme ve geri alma işlemleri kolaylaşır.

3. TLS sertifikaları otomatik yenilenir mi? Evet, Cert-Manager bunu arka planda yapar.

4. Aynı Ingress ile kaç domain yönetilebilir? Tek bir Ingress çok sayıda domain yönlendirebilir.

5. HTTPS olmadan Ingress çalışır mı? Evet, ancak güvenlik ve SEO açısından önerilmez.


Sonuç

Bu rehberle Kubernetes üzerinde Nginx Ingress, Helm ve Let’s Encrypt birlikte yapılandırıldı. Artık uygulamalarınızı güvenli, ölçeklenebilir ve merkezi biçimde yayınlayabilirsiniz.

Kubernetes altyapınızı üretim ortamına taşımak için Rabisu Bulut çözümlerini hemen deneyebilirsiniz.