2024-09-30Hünkar Döner

Helm Nedir? EKS İçin Nasıl Kullanılır?

KubernetesHelmEKSPackage Manager
H

Helm Nedir? EKS İçin Nasıl Kullanılır?

Kubernetes üzerinde uygulama dağıtmak (deploy) bazen karmaşık olabilir. Bir uygulama için Deployment, Service, Ingress, ConfigMap, Secret gibi birçok farklı YAML dosyası yazmanız gerekir. Bu dosyaları yönetmek, versiyonlamak ve farklı ortamlar (Dev, Test, Prod) için özelleştirmek zamanla bir kabusa dönüşebilir.

İşte Helm burada devreye girer. Helm, Kubernetes'in paket yöneticisidir (Package Manager). Linux'taki apt veya yum ne ise, Kubernetes için Helm odur.

Helm Ne İşe Yarar?

  • Paketleme: Uygulamanızın tüm Kubernetes kaynaklarını (YAML dosyaları) tek bir pakette (Chart) toplar.
  • Şablonlama (Templating): YAML dosyalarının içine değişkenler koymanızı sağlar. Örneğin, replicaCount: {{ .Values.replicaCount }} diyerek, pod sayısını dışarıdan parametre olarak verebilirsiniz.
  • Versiyonlama: Uygulamanızın versiyonlarını takip edebilir, hatalı bir güncelleme yaparsanız tek komutla (helm rollback) geri alabilirsiniz.
  • Paylaşım: Hazır Helm Chart'larını (örn: WordPress, Prometheus, MySQL) kullanarak karmaşık uygulamaları dakikalar içinde kurabilirsiniz.

EKS Üzerinde Helm Kullanımı

Amazon EKS üzerinde Helm kullanmak oldukça basittir.

Adım 1: Kurulum

Bilgisayarınıza Helm CLI aracını kurun. Ardından kubectl komutunun EKS kümenize erişebildiğinden emin olun.

Adım 2: Hazır Bir Chart Kurmak

Örneğin, NGINX Ingress Controller kurmak isteyelim:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install my-nginx ingress-nginx/ingress-nginx

Bu üç komutla, Load Balancer, Service, Deployment ve gerekli tüm RBAC ayarları otomatik olarak kurulur.

Adım 3: Kendi Chart'ınızı Oluşturmak

Kendi uygulamanız için bir chart oluşturmak için: helm create my-app Bu komut size hazır bir klasör yapısı sunar. values.yaml dosyasını düzenleyerek uygulamanızın ayarlarını yapabilirsiniz.

İpucu: Helm ve CI/CD

Helm, CI/CD süreçlerinin (Jenkins, GitLab CI) vazgeçilmezidir. Uygulamanızın yeni versiyonunu dağıtmak için sadece helm upgrade komutunu çalıştırmanız yeterlidir.

EKS projelerinizde Helm kullanarak, YAML karmaşasından kurtulabilir ve standartlaşmış bir dağıtım süreci elde edebilirsiniz.