Genel

Kubernetes Helm Charts: Kurumsal Uygulama Dağıtımını Standartlaştırın

· 4 dakika okuma · 39
Kubernetes Helm Charts: Kurumsal Uygulama Dağıtımını Standartlaştırın

Merhaba,

Kubernetes ortamına geçtiniz, containerlarınız hazır ama deployment yönetimi kaos haline gelmeye başladı mı? Helm tam bu noktada devreye giriyor. Kubernetes için paket yöneticisi olan Helm, uygulama dağıtımını şablonlara dönüştürerek tekrarlanabilir hale getiriyor. Gelin kurumsal perspektiften inceleyelim arkadaşlar.

Helm Nedir ve Neden Kullanmalıyız?

Kubernetes'te her deployment, service, configmap, ingress ayrı YAML dosyası. Küçük bir uygulama bile 10-15 YAML gerektiriyor. Bunları ortama göre (dev/test/prod) yönetmek hızla karmaşıklaşıyor. Helm bu YAML'ları Chart adı verilen paketlere topluyor ve değişkenleştiriyor. Sonuç: tek komutla tutarlı deployment.

Chart Yapısı

Bir Helm Chart'ın temel yapısı şu şekilde:

mychart/
  Chart.yaml        # Metadata (isim, versiyon, açıklama)
  values.yaml       # Varsayılan değişkenler
  templates/        # YAML şablonları
    deployment.yaml
    service.yaml
    ingress.yaml
    _helpers.tpl    # Tekrar kullanılabilir fonksiyonlar

Şablonlarda {{ .Values.image.tag }} gibi Go template syntax'i kullanılıyor. values.yaml'daki değerler şablonlara enjekte ediliyor.

Values Hiyerarşisi ve Ortam Yönetimi

Kurumsal ortamın en kritik konusu bu. Tek bir values.yaml yerine ortam bazlı override dosyaları kullanın:

helm install myapp ./mychart 
  -f values.yaml 
  -f values-prod.yaml 
  --set image.tag=1.2.3

values-prod.yaml sadece prod'a özgü değerleri içeriyor (replica sayısı, resource limitleri, ingress hostname). Bu yapı hem güvenli hem de okunabilir.

Helmfile ile Çoklu Chart Yönetimi

Kurumsal ortamda tek chart değil onlarca chart var. Helmfile, birden fazla Helm release'ini deklaratif olarak yönetmenizi sağlıyor. Tüm servislerinizi tek helmfile.yaml'da tanımlayıp helmfile sync ile tümünü deploy edebilirsiniz. GitOps yaklaşımıyla birleşince güçlü bir deployment pipeline elde ediyorsunuz.

Helm ile GitOps: ArgoCD Entegrasyonu

ArgoCD, Helm Chart'larını Git'ten okuyup Kubernetes'e otomatik uygulayan bir GitOps aracı. Git'e chart değişikliği push ettiğinizde ArgoCD algılayıp cluster'ı güncelliyor. Manuel helm upgrade komutu ortadan kalkıyor. Audit trail Git history'de, rollback git revert ile yapılıyor.

Chart Repository Yönetimi

Geliştirdiğiniz chart'ları kurum içi Helm repository'sinde yayınlayın. OCI-based registry (Azure Container Registry, Harbor) ile Helm chart ve Docker image aynı yerde tutulabiliyor. helm push ile publish, helm pull ile çekme artık Docker workflow'una benziyor.

Güvenlik: Secrets Yönetimi

Hassas değerleri values.yaml'a koymayın. Helm Secrets (vals veya SOPS ile şifreleme) veya External Secrets Operator kullanın. Azure Key Vault, HashiCorp Vault entegrasyonlarıyla secret'lar Kubernetes'e güvenli şekilde enjekte edilebiliyor.

Sonuç

Helm, Kubernetes'i ciddiye alan her kurumsal ortamın vazgeçilmezi. Chart yapısı, values hiyerarşisi ve GitOps entegrasyonu, bunları doğru kurguladığınızda deployment karmaşıklığı önemli ölçüde azalıyor. Yeni Kubernetes projesine başlıyorsanız ilk gün Helm ile başlayın :)

İyi Günler Dilerim,

Bu yazıyı paylaş: