Image for post
Image for post

Helm ile Kubernetes Uygulama Yönetimi

Kubernetes üzerinde birden fazla uygulama servisin dağıtımı ve yönetimi birçok ayar ve komut gerektirmektedir. Helm, CNCF (Cloud Native Computing Foundation) tarafından desteklenip geliştirilen bir paket yöneticisi olarak uygulamalarınızı dağıtıp yönetebilmenizi oldukça kolaylaştırır.

Helm ile birden fazla mikro servisi ayrı ayrı yönetebilir, güncelleyebilir ve ölçeklendirebilirsiniz.

Helm güncel uygulama repository’si olarak Bitnami kataloğunu kullandığından oldukça güvenlidir.

Kubernetes geliştirilmeleri ile birlikte Helm v3 mimari olarak oldukça major değişiklikler içermektedir. Örneğin Kubernetes API ile Helm arasında iletişim kuran ve RBAC (Role-Based Access Control) Tiller servisi artık kullanılmamaktadır. Ek olarak Helm komut ve parametrelerinde de bazı değişiklikler yapılmıştır.

Helm için kullanabileceğiniz Bitnami Community kataloğunda şuan 150'ye yakın uygulama bulunmaktadır. Bitnami VMware tarafından satın alındığından Enterprise kataloğu sadece VMware Tanzu Application Catalog üzerinden kullanılmaktadır.

Helm için Bitnami kataloğuna https://bitnami.com/stacks üzerinden erişebilirsiniz.

Image for post
Image for post

Helm için gerekli olan Linux, Windows ve MacOS kurulum kaynaklarına GitHub üzerinden erişebilirsiniz. https://github.com/helm/helm/releases

Helm için mevcutta çalışan bir Kubernetes cluster’ınızın ve Persistent Volume için hazırlanmış depolama kaynağınız olması gerekiyor. Ben linux ortamında bir NFS sunucusu konfigure edip oluşturmuş olduğum NFS share üzerine master ve worker node’larımı mount ettim. NFS tüm Access Mode’ları desteklediği için en uygun depolama kaynaklarından biri olarak kullanılmakta.

Diğer depolama seçenekleri için aşağıdaki tabloyu inceleyebilirsiniz.

Image for post
Image for post

Aşağıdaki komutlar ile Helm GitHub üzerinden direkt olarak çekip kurabilirsiniz.

# wget https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz

# tar -zxvf helm-v3.1.2-linux-amd64.tar.gz

# mv linux-amd64/helm /usr/local/bin/helm

# helm komutu ile ilgili konfigürasyon ve komut çıktısını alabilirsiniz.

Image for post
Image for post

Kurulum sonrası Bitnami ve Kubernetes repository’lerini ekleyip Helm kurulumunu tamamlayabilirsiniz.

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

# helm repo add stable https://kubernetes-charts.storage.googleapis.com/

Helm ve Kubernetes ortamı için bir NFS Storage-Class oluşturmamız gerekiyor. Aşağıdaki komut üzerinde NFS sunucumuz ile birlikte NFS Share’mizin yerini belirtikten sonra storage-class için bir isim vererek Persistent Volume için gerekli olan altyapı hazırlamış oluyoruz.

# helm install nfsprovisioner —set nfs.server=k8s-nfs.local — set nfs.path=/nfs — set storageClass.name=nfs — set storageClass.defaultClass=true stable/nfs-client-provisioner

Image for post
Image for post

Uygulama kurulum ve konfigürasyonlarınızı özelleştirmek isterseniz GitHub Bitnami üzerinde bulunan uygulama parametrelerini kullanabilirsiniz. https://github.com/bitnami/charts/tree/master/bitnami

Image for post
Image for post

İsterseniz yukarıdaki parametreleri elle girmektense GitHub üzerinde bulunan bir yaml dosyasını çekip kendi ortamınıza göre hazırlayabilirsiniz. Böylece kurulum sırasında birden fazla parametre girmektense bu yaml dosyasını kullanarak ilgili parametreleri kurulum ve konfigürasyona dahil edilebilirsiniz.

Örnek olarak;

# helm install Cassandram -f values.yaml bitnami/cassandra

Güncelleme için yine benzer komutları kullanabilirsiniz.

# helm upgrade Cassandram -f values.yaml bitnami/cassandra

Kaldırmak istediğiniz bir uygulama için “# helm del Cassandram” komutunu kullanabilirsiniz.

Örnek olarak RabbitMQ ve Grafana için iki farklı kurulum denemesi yapacağız.

RabbitMQ için kendi hazırlamış olduğum kurulum parametresi aşağıdaki gibi siz isterseniz yaml şablonunu kullanabilirsiniz.

# helm install rabbitmq — set rabbitmq.password=rabbitmqkonsolsifrem — set persistence.storageClass=nfs — set persistence.accessMode=ReadWriteMany — set persistence.size=1Gi — set service.type=NodePort bitnami/rabbitmq

2–3 dakika içerisinde tüm kurulumlar ve konfigürasyonlar gerçekleştirilecek bağlantı için gerekli olan parametrelerin dökümü karşınıza gelecektir.

# echo “URL : amqp://$NODE_IP:$NODE_PORT_AMQP/”

# echo “URL : http://$NODE_IP:$NODE_PORT_STATS/"

Image for post
Image for post
Image for post
Image for post

Grafana için kendi hazırlamış olduğum kurulum parametresi aşağıdaki gibi siz isterseniz yaml şablonunu kullanabilirsiniz.

# helm install grafana — set admin.user=user — set admin.password=grafanakonsolsifrem — set presistence.storageClass=nfs — set persistence.accessMode=ReadWriteMany — set persistence.size=1Gi — set service.type=NodePort bitnami/grafana

2–3 dakika içerisinde tüm kurulumlar ve konfigürasyonlar gerçekleştirilecek bağlantı için gerekli olan parametrelerin dökümü karşınıza gelecektir.

echo http://$NODE_IP:$NODE_PORT

Image for post
Image for post

Özet olarak Helm, Kubernetes ortamınızda elinizi oldukça hafifletecek daha çok fazla özelliği olan bir uygulama otomasyon ve yönetim yazılımı ve Bitnami desteği ile oldukça güvenilir bir kaynak sunabileceğinden güvenle kullanabilirsiniz.

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store