müfettiş
Moderatör
- Katılım
- 20 Ocak 2024
- Mesajlar
- 325
- Tepkime puanı
- 1
- Puanları
- 18
Kubernetes Helm Chart Nedir? Uygulama Paketleme ve Dağıtım
Giriş: YAML Cehenneminden Çıkış
Kubernetes (K8s) harikadır ama yönetimi zordur. Basit bir uygulamayı (örneğin WordPress) kurmak için bile Deployment, Service, Ingress, Secret, PVC, ConfigMap gibi en az 5-6 tane YAML dosyası yazmanız gerekir.Daha kötüsü, bu uygulamayı "Test" ortamına kurarken ayrı, "Canlı" (Prod) ortama kurarken ayrı YAML dosyaları düzenlemeniz gerekir. Bu kopyala-yapıştır süreci hataya açıktır. İşte Helm, bu sorunu çözen "Kubernetes Paket Yöneticisi"dir. Linux için apt veya yum neyse, K8s için Helm odur.
Helm Mimarisi: 3 Temel Kavram
Helm'i anlamak için şu üç terimi bilmelisiniz:- Chart (Paket): Uygulamanızın çalışması için gereken tüm şablon (template) dosyalarının bulunduğu klasördür. Paketin kendisidir.
- Values (Ayarlar): Şablonların içine doldurulacak değişkenlerdir (values.yaml).
- Release (Sürüm): Bir Chart'ın, belirli ayarlarla (Values) kümeye kurulmuş halidir. Aynı Chart'ı farklı isimlerle 10 kere kurabilirsiniz; her biri ayrı bir Release olur.
Neden Helm Kullanmalıyız? (Templating Gücü)
Helm'in en büyük gücü Şablonlama (Templating) yeteneğidir.Normal bir K8s dosyasında image: nginx:1.19 diye elle yazarsınız. Helm'de ise şöyle yazarız:YAML
YAML:
# deployment.yaml (Şablon)
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
Bu sayede, values.yaml dosyasında sadece versiyonu değiştirerek aynı şablonu hem Test hem Prod ortamında kullanabilirsiniz.
- Test için: helm install my-app ./chart --set image.tag=dev
- Prod için: helm install my-app ./chart --set image.tag=stable
Helm Kullanımı ve Artifact Hub
Sıfırdan Chart yazmak zorunda değilsiniz. Artifact Hub, binlerce hazır Helm Chart'ın bulunduğu bir markettir.Örnek: Prometheus ve Grafana KurulumuNormalde bu ikiliyi kurmak için yüzlerce YAML dosyası gerekir. Helm ile tek komuttur:
Bash
Bash:
# Repo ekle
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
# Kurulumu yap
helm install monitoring prometheus-community/kube-prometheus-stack
Yaşam Döngüsü Yönetimi: Upgrade ve Rollback
Helm sadece kurmaz, güncellemeyi de yönetir.- Upgrade: Uygulamada değişiklik yaptınız. helm upgrade my-app ./chart komutuyla sadece değişen kısımlar güncellenir.
- Rollback: Güncelleme patladı mı? helm rollback my-app 1 komutuyla saniyeler içinde bir önceki versiyona dönersiniz. Helm, yapılan her değişikliğin kaydını (Revision) tutar.
Kendi Chart'ınızı Oluşturmak
helm create my-chart komutu size hazır bir klasör yapısı verir.- templates/: YAML dosyalarınızın şablon hali buradadır.
- Chart.yaml: Uygulamanın adı ve versiyon bilgisi.
- values.yaml: Varsayılan ayarlar.