EMZETT.
Giriş yap

Helm: Kubernetes için paketler

Kısaca: Birbiriyle ilişkili birçok YAML dosyasını bir “chart” olarak paketleyen ve ayarlanabilir değerlerle kuran Kubernetes için bir paket yöneticisi.

Biraz daha ayrıntılı: Kubernetes üzerindeki bir uygulama çoğunlukla birçok kaynaktan oluşur: deployment, service, config map, ingress ve daha fazlası. Helm bunları bir chart içinde birleştirir. helm install ile chart dağıtılır; imaj sürümü veya kopya sayısı gibi değerler kolayca ayarlanabilir.

Ayrıntılı

Terimler

  • Chart: şablonlar ve varsayılan değerleri (values.yaml) içeren paket.
  • Release: bir chart’ın adı olan kurulmuş bir örneği.
  • Depo (repository): yayımlanmış chart’lar koleksiyonu (örneğin veritabanları veya izleme için).
  • Değerler (values): şablonları dolduran ayarlar.

Tipik komutlar

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-db bitnami/postgresql --set auth.postgresPassword=secret
helm upgrade my-db bitnami/postgresql -f my-values.yaml
helm rollback my-db 1
helm uninstall my-db

upgrade mevcut bir release’i değiştirir, rollback önceki bir sürümü geri yükler. Gerçek işletimde parolalar komut satırına ait değildir.

Şablonlar

Şablonlar Go şablon dilini kullanır. Bir alıntı:

replicas: {{ .Values.replicaCount }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"

Böylece farklı değerlerle bir chart, test için bir varyant ve üretim için bir varyant olur.

Alternatifler

Kustomize (kubectl içinde yerleşik), şablon dili olmadan, YAML dosyalarının üst katmanlarıyla (overlay) çalışır. Birçok ekip ikisini birleştirir veya Helm chart’larını kendileri uygulayan GitOps araçları kullanır. Üçüncü taraf kaynaklardan gelen chart’lar kullanmadan önce gözden geçirilmelidir, çünkü kümede izinler oluşturabilirler.

Ayrıca bak: Kubernetes temelleri, GitOps, Kod olarak altyapı