Helm Nedir, Nasıl Kullanılır ?| Kubernetes Dersleri 4

Merhabalar, önceki yazımda Kubernetes Yaml dosyalarının nasıl yazılabileceğinden bahsetmiştim. Sizin de fark ettiğiniz üzere yaml dosyalarını sıfırdan yazmak hiç de kolay değil.

Her bir uygulamayı deploy etmek icin ayrı ayrı servis, ConfigMap, Secrets ve deployment dosyaları yazmamız gerekmekte ve normal şartlarda kendi uygulamanız dışındaki kullandığınız sistemler icin de bu dosyaları oluşturmanız gerekmektedir. (Veritabanlari vb.)

Bu yazımda yardımımıza kosan Helm’i inceleyeceğiz.

Helm Nedir ?

Helm’in birden fazla görevi olsa da kubernetes icin paket yöneticisi olarak düşünebiliriz.

Helm Versiyon Yonetimi
Helm Versiyon yönetimi yapmanıza da yardımcı olur. Helm Upgrade ile yeni versiyon deploy edebilirsiniz ya da Helm rollback komutu ile önceki versiyona geri dönebilirsiniz.

Helm Nasil Calişir ?

Projeler icin yazılan kubernetes yaml dosyaları paketlenerek bir repository’e yüklenir. Yüklenen paketlenmiş yaml dosyaları Chart olarak adlandırılmaktadır. Projeyi kullanmak isteyen developerlarin tek yapması gereken “Helm install chart_name” komutuyla o projeyi indirmesidir.

Helm Repository Nedir ?

Helm chartlarının depolandığı yerdir.

Yukarıda verilen tanımlardan anlaşılacağı üzere repositoryde bulunan projeler icin kolayca deployment yapabiliriz. Bitnami Reposu Proje Örnekleri. (Mongodb, postgres, redis vb.)

Helm Chart’i İnceleyelim

Helm indirmek icin linke tıklayabilirsiniz. Dilediğiniz yöntem ile helm’i indirilebilirsiniz.

# denemeProject proje adi, siz istediginizi verebilirsiniz
helm create denemeProject 

Yukarıdaki komutu koştuğumuzda bir dosya oluştuğunu göreceğiz.

helm create result
  • Charts => Chat’imizin bağımlı olduğu dosyaları tutar.
  • Templates => Bizim yaml dosyalarımızı tutar içeriğini kendi projemize göre değiştireceğimiz yer.
  • .helmignore => Chart paketlenirken hangi dosyaların eklenmemesi gerektiğini belirtir.
  • Chart.yaml => Chart hakkındaki Meta bilgileri içerir.
  • Values.yaml => Templates de kullanılan yaml dosyaları için proje değerlerini tutar.

Templates dosyasının içerisinde kubernetes konseptlerini içeren dosyalar olduğunu göreceksiniz deployment, service, ingress vb.)

Eğer bu dosyaları incelersek direk değerlerini vermek yerine, değerleri “.Values.<key>” ile values.yaml dosyasından aldığını göreceğiz. Bu yapı sayesinde farklı ortamlar (dev, stage, prod) için ayni template dosyalarını tekrar yazmak zorunda kalmıyoruz.

Helm Komutları

1.) Helm Repo

# helm reposu eklemek icin
helm repo add bitnami https://charts.bitnami.com/bitnami

# helm reposu kaldirmak icin
helm repo remove bitnami https://charts.bitnami.com/bitnami

# helm repolari listelemek icin
helm repo list
helm repo ls

# helm repo update repolardaki yenilikleri çeker
helm repo update 

2.) Helm Install

İnstall komutu ile istediğimiz projeyi deploy edebiliriz. (O projenin repoda bulunması gerekmektedir)

# helm bitnami reposu ekle
helm repo add bitnami https://charts.bitnami.com/bitnami

# helm ile postgresql deploy etme komutu  1
helm install my-release bitnami/postgresql

# helm ile postgresql deploy etme komutu  2  kendi values yaml dosyamizi kullarak 
helm install my-release --values=my-values.yaml bitnami/postgresql 

# helm ile postgresql deploy etme komutu  3  set ile degiskeni setleyerek 
helm install my-release --set global.postgresql.postgresqlUsername=furkan bitnami/postgresql

3.) Helm Upgrade

Uygulamanızı upgrade yapmanızı sağlar önceki podları silerek yeni ayarlar ile oluşturur.

# ilk olarak deploy edelim
helm install my-release bitnami/postgresql


# herhangi bir seyi degistirip tekrar upgrade yapabilirsiniz kod veya tempalate
helm upgrade my-release --set global.postgresql.postgresqlUsername=furkan bitnami/postgresql

4.) Helm List

Helm ile deploy olmuş uygulamaları gösterir.

# Releaseleri listeler
helm list
helm ls

5.) Helm Rollback

# bir onceki revizyona döner
helm rollback my-release

# spesifik revizyona dönmek icin
helm rollback my-release <revizyon>

6.) Helm Create

Yeni Helm chart oluşturur. Kendi projemizi kolayca entegre edip deploy edebiliriz.

helm create <chart_adi>

7.) Helm Lint

Charttaki hataları bulmak icin kullanılır.

helm lint <path>

8.) Helm Uninstall

Release’i kaldırmak icin kullanılır.

helm uninstall my-release

Bu yazımda Helm Nedir, Nasıl Kullanılır ve Neleri Kolaylaştırır gibi sorulara cevap vermeye çalıştım. Bir sonraki yazıda görüşmek üzere.

Add a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir