Helm Nedir? Nasıl Kurulur ve Kullanılır?
4 min read

Helm Nedir? Nasıl Kurulur ve Kullanılır?

Helm, Kubernetes için bir paket yöneticisidir ve dağıtım, güncelleme ve yönetim işlerinizi kolaylaştırır.
Helm Nedir? Nasıl Kurulur ve Kullanılır?
Photo by Andrew Neel / Unsplash

Helm, Kubernetes için bir paket yöneticisidir. Bir CNCF projesidir ve Kubernetes üzerinde uygulama dağıtma, güncelleme ve yönetmeyi kolaylaştırır.

Helm chart, Kubernetes üzerinde bir uygulama dağıtmak için Kubernetes resource'ları tanımlayan bir dosyadır. Helm chart, YAML veya JSON formatında yazılabilir.

Helm'in mimarisi son yıllarda değişmiştir. Helm'in mevcut sürümü, Rest aracılığıyla doğrudan Kubernetes cluster'la iletişim kurar. Helm hakkında içinde Tiller geçen bir şeyler okursanız, eski bir makaleyi okuyorsunuz demektir. Çünkü Tiller, Helm 3'te kaldırıldı.

Helm stateful çalışır, yani durum bilgisi tutar. Bir Helm Chart yüklendiğinde, tanımlanan resource'lar devreye alınır ve meta bilgiler Kubernetes secretlarda depolanır.

1. Helm'in Avantajları Nelerdir?

Kubernetes, karmaşık bir platformdur. Kubernetes üzerinde uygulama dağıtmak, güncellemek ve yönetmek zor olabilir. Helm, bu zorluğu azaltır. Helm, Kubernetes üzerinde uygulama dağıtmayı, güncellemeyi ve yönetmeyi kolaylaştırır.

Helm'in avantajları şunlardır:

  • Kolay kullanım: Helm, Kubernetes üzerinde uygulama dağıtma, güncelleme ve yönetmeyi kolaylaştırır.
  • Standart format: Helm, Kubernetes üzerinde uygulama dağıtmak için standart bir format kullanır. Bu, Helm ile dağıtılan uygulamaların diğer Kubernetes kümelerine taşınmasını kolaylaştırır.
  • Geniş topluluk: Helm, büyük bir kullanıcı ve geliştirici topluluğuna sahiptir. Bu, Helm ile ilgili sorunları çözmek ve yeni özellikler eklemenizde büyük fayda sağlayacaktır.

2. Helm Nasıl Kurulur?

Helm, Linux, macOS ve Windows platformlarında kullanılabilir. Helm'i kurmak için aşağıdaki adımları izleyin:

MacOS için:

brew install helm

Windows için:

choco install kubernetes-helm

Debian ailesi için:

curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

RedHat ailesi için:

sudo dnf install helm

Daha fazla seçenek için resmi sayfasını ziyaret edebilirsiniz.

3. Helm Nasıl Kullanılır?

Helm, daha önceden hazırlanmış binlerce hazır kurulum chart'larını bulabileceğiniz bir repository'e sahiptir. Kurmak istediğiniz uygulamayı, örneğin; Kubernetes Dashboard, Ghost BLog, Grafana vs repository'den arayarak bulabilirsiniz.

Artifact Hub
Find, install and publish Kubernetes packages

Ardından bulduğunuz uygulamanın reposunu repo add komutuyla eklemeli ve ardından install komutuyla cluster'a yüklemelisiniz.

Örneğin Kubernetes Dashboard için sadece şu iki komut cluster'a uygulamayı yüklemek için yeterlidir.

helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard

Kurmak istediğiniz uygulamanın kurulum aşamalarını ve detaylı açıklamasını ilgili uygulama Helm sayfasında bulabilirsiniz.

Eğer daha önce kurduğunuz bir uygulamayı Helm ile kaldırmak istiyorsanız da delete komutunu kullanabilirsiniz.

helm delete kubernetes-dashboard --namespace kubernetes-dashboard

Ayrıca yine daha önce yüklediğiniz bir uygulamayı upgrade komutuyla güncelleyebilirsiniz.

helm upgrade kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --namespace kubernetes-dashboard

Eğer güncelleme sonrası bir sorun çıkar veya önceki bir versiyona dönmek isterseniz de rollback komutunu kullanabilirsiniz. Öncesinde list komutuyla mevcut revision numarasını görebilirsiniz.

$ helm list

NAME     	REVISION	STATUS  	CHART      	VERSION
my-apache	2       	deployed	apache-8.0.3	2.4.46
$ helm rollback my-apache 1                    

Rollback was a success! Happy Helming!

4. Kendi Helm Chart'ımı Nasıl Hazırlayabilirim?

Artifact Hub üzerindeki hazır chartları kullanmak yerine kendi özel chartlarınızı da hazırlayabilirsiniz. Kendi Helm chart'ınızı oluşturmak için aşağıdaki adımları izleyin:

  1. Yeni bir dizin oluşturun.
  2. Dizin içine chart.yaml dosyasını oluşturun.
  3. chart.yaml dosyasında, chart'ın meta verilerini tanımlayın.
  4. values.yaml dosyasını oluşturun.
  5. values.yaml dosyasında, chart'ın değerlerini tanımlayın.
  6. Chart'ın Kubernetes resource'larını tanımlayan templates dosyasını oluşturun.

chart.yaml Dosyası

chart.yaml dosyası, chart'ın meta verilerini tanımlar. Meta veriler, chart'ın adını, sürümünü, maintainer'ını ve diğer bilgileri içerir.

chart.yaml dosyasının örnek içeriği aşağıdaki gibidir:

name: my-chart
version: 0.1.0
description: A Helm chart for a simple application.
maintainer: <Your Name>

values.yaml Dosyası

values.yaml dosyası, chart'ın değerlerini tanımlar. Değerler, chart'ın Kubernetes kaynaklarını nasıl yapılandıracağını belirtir.

values.yaml dosyasının örnek içeriği aşağıdaki gibidir:

image:
  repository: nginx
  tag: latest

templates Dosyası

templates dosyası, chart'ın Kubernetes kaynaklarını tanımlar. templates dosyası, YAML veya JSON formatında yazılabilir.

templates dosyasının örnek içeriği aşağıdaki gibidir:

deployment.yaml:
  kind: Deployment
  metadata:
    name: my-app
  spec:
     replicas: 1
     template:
       metadata:
         labels:
           app: my-app
       spec:
         containers:
         - name: my-app
           image: nginx
           ports:
           - containerPort: 80

Daha fazla detay ve örnek için Chart Template Guide sayfasını ziyaret edebilirsiniz:

Getting Started
A quick guide on Chart templates.