Helm
- Okunuşu
- helm
Kısaca
Helm, Kubernetes'in paket yöneticisidir; uygulamanın yapılandırma dosyalarını tek komutla kurulup güncellenebilen ve geri alınabilen bir chart'ta paketler.
Helm nedir?
Basit bir uygulamayı bile Kubernetes'te çalıştırmak birkaç YAML dosyası gerektirir: bir Deployment, bir Service, bir ConfigMap, belki bir Ingress ve bir Secret. Cloud Native Computing Foundation'ın mezun (graduated) projelerinden Helm, bu dosyaları bir chart olarak birlikte paketler; böylece bütün uygulama, apt ya da npm'in yazılım kurması gibi tek bir birim olarak paylaşılıp kurulabilir.
Bir chart; yer tutucular içeren Kubernetes manifestoları olan şablonları ve varsayılan ayarları tutan bir values.yaml dosyasını içerir. Kurduğunuzda Helm şablonları değerlerle doldurur ve sonucu kümeye gönderir. Replika sayısı ya da imaj sürümü gibi ayarları şablonları düzenleyerek değil, kendi değerlerinizi vererek değiştirirsiniz.
Her kurulum, numaralı bir geçmişi olan bir release'tir. helm upgrade bir release'i yeni bir chart sürümüne ya da yeni değerlere taşır; bir şey ters giderse helm rollback önceki bir revizyona döner. Herkese açık depolar; veritabanları, izleme araçları ve ingress denetleyicileri gibi yaygın yazılımlar için hazır chart'lar sunar.
Sık yapılan bir yanlış, uygulamaları Helm'in çalıştırdığı ya da zamanladığı düşüncesidir. Bunu Kubernetes yapar; Helm yalnızca manifestoları üretip uygular ve release'leri takip eder. Yoğun şablonlama chart'ları okumayı da zorlaştırabilir; bu yüzden bazı ekipler Kustomize ile düz manifestoları tercih eder ya da Helm'i Argo CD gibi GitOps araçlarıyla birleştirir.
Önemli noktalar
- Helm, Kubernetes'in paket yöneticisidir.
- Bir chart, şablonlanmış manifestoları values.yaml'daki varsayılan değerlerle paketler.
- Her kurulum, güncellenip geri alınabilen bir release'tir.
- Herkese açık depolar yaygın yazılımlar için chart'lar sunar.
- Uygulamayı Kubernetes çalıştırır; Helm manifestolarını üretir ve yönetir.
Örnek
# Add a chart repository and install a release called "dashboards"
helm repo add grafana https://grafana.github.io/helm-charts
helm install dashboards grafana/grafana --set replicas=2
# Change a setting later, then go back if needed
helm upgrade dashboards grafana/grafana --set replicas=3
helm rollback dashboards 1Sık sorulan sorular
Helm chart nedir?
Şablonlanmış Kubernetes manifestolarından ve varsayılan ayarları tutan bir values.yaml dosyasından oluşan bir pakettir. Chart'ı kurmak, şablonları sizin değerlerinizle doldurur ve kümeye uygular.
Kubernetes için Helm şart mı?
Hayır. Düz YAML manifestolarını kubectl ile uygulayabilir ya da Kustomize kullanabilirsiniz. Helm, aynı uygulamayı birçok kez kurduğunuzda ya da başkalarıyla paylaştığınızda işe yarar hale gelir.
Helm release nedir?
Bir chart'ın bir kümedeki tek bir kurulumudur; kendi adı ve güncellenip geri alınabilen bir revizyon geçmişi vardır.
İlgili sayfalar
- KubernetesDevOps ve Bulut, s. 30Kubernetes, konteynerli uygulamaların bir makine kümesi üzerinde dağıtılmasını, ölçeklenmesini ve yönetilmesini otomatikleştiren açık kaynaklı bir sistemdir.
- PodDevOps ve Bulut, s. 39Pod, Kubernetes'te dağıtılabilen en küçük birimdir: ağ adresini ve depolamayı paylaşan, tek bir node'da birlikte zamanlanan bir ya da daha çok konteynerdir.
- KonteynerDevOps ve Bulut, s. 28Konteyner, bir uygulamayı bağımlılıklarıyla paketleyip ana makinenin paylaşılan işletim sistemi çekirdeği üzerinde çalıştıran hafif, yalıtılmış bir pakettir.
- YAMLDevOps ve Bulut, s. 52YAML, parantez yerine girinti kullanan, insanın okuyabileceği bir veri biçimidir; DevOps araçlarında ve CI/CD pipeline'larında yapılandırma için yaygındır.
- GitOpsDevOps ve Bulut, s. 20GitOps, sistemin istenen durumunu Git'te tutan ve otomatik bir ajanın canlı sistemi bununla senkronize ettiği bir altyapı ve dağıtım yönetimi yöntemidir.
- RollbackDevOps ve Bulut, s. 43Rollback, yeni bir dağıtım hatalara, kesintilere ya da beklenmedik başka sorunlara yol açtığında yazılımı önceki, sorunsuz sürüme döndürme işlemidir.
- kubectlDevOps ve Bulut, s. 29kubectl, Kubernetes'in komut satırı aracıdır: uygulamaları dağıtmak, incelemek ve değiştirmek için bir cluster'ın API sunucusuna istek gönderir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin