Helm ile Kubernetes Paket Yönetimi
0

Platformlarda paket yönetimi bir uygulamanın kurulması için gerekli öngereksinimlerin kurulması, ilgili kütüphanelerin kurulması ve sonrasında uygulamanın kurulması için geliştirilmiş bir kurulum yönetim sistemidir. Helm ile Kubernetes Paket Yönetimine Örnek vermek gerekirse, Linux platformlarda bir uygulama kurmak için, apt, yum, rpm, dpkg gibi paket yönetim sistemleri ile ilgili uygulamayı (text ediyor, winzip, docker, media player vs.) repositorylerde arar ve kurarız. Bu paket yönetim yazılımları bu uygulamaları kurmak için gerekli olan binary ve öngereksinimleri kurar sonrasında uygulamanın kendisini kurar. Modern platformların hepsinde bir paket yönetim sistemi vardır. Linux ortamında yum,rpm,apt,yum, Windows ortamında OneGet, Chocolatey gibi paket yönetim sistemleri vardır.

Helm ise Kubernetes platformunun paket yönetim sistemidir. Kubernetes ortamında uygulamaları, bağımlılıklarını veya öngereksinimlerini yönetmek kurulan uygulamarın versiyonlamasını yapmak için helm paket yönetimini kullanırız.

Helm’in son versiyonu CNCF (Cloud Native Computing Foundation) içerisinde Microsoft, Google, Bitnami işbirliği içerisinde yönetiliyor.

Peki Helm gibi paket yönetim sistemleri neden kullanılır? Helm uygulamalarınızı yönetirken, karışıklığı azaltır, kolay güncelleme yapmanızı sağlar, uygulamaların platformlar arası basit bir şekilde paylaşılmasını sağlar ve gerektiği zaman kolayca farklı bir versiyona rollback yapmanızı sağlar.

Helm Chart

Helm Chart bir Kubernetes uygulaması için gerekli olan bilgiler topluluğunu barındıran dosyadır. Örnek vermek gerekirse Kubernetes deploymentlarında bulunan, service bilgisi, repository bilgisi, ingress bilgisi, load balancer bilgisi gibi bir çok bilgiyi yaml formatında barındırır ve versiyonlar. Bu bilgileri helm yapısı içerisinde parametrik hale getirip güvenli ve otomatize kurulumlar gerçekleştirebilirsiniz.

Helm Mimarisi

Helm mimarisinde temel olarak iki bileşen bulunur, Helm Client ve Helm Tiller

Helm Client

Helm client kullanıcıların tiller server ile haberleşmesi için komut sistemidir. Helm client local chartların oluşturulması, değiştirilmesi, repositorylerden chartlarin çekilmesi gibi client işlerinden sorumludur.

Tiller Server

Tiller server helm client’ın haberleştiği ve Kubernetes api server ile etkileşimde bulunan server bileşenidir. Helm clientdan gelen istekleri dinler, chartların kurulumu, güncellenmesi veya silinmesinden sorumludur.

Helm ile ilgili detaylı dokümanyasyona https://helm.sh/ adresinden ulaşabilirsiniz.

Helm Kurulumu

Helm’I yine kendisi gibi diğer paket yönetim sistemleri ile kurabilirsiniz.

MacOS için;

Brew install Kubernetes-helm

Linux için;

Sudo snap install helm –classic

Windows için;

choco install kubernetes-helm

Resim-1

Windows’unuz da chocolatey yoksa kurmak için; https://chocolatey.org/install

Şimdi örnek bir helm paketi deploy edelim.

Helm paketlerini kurmak için ben Azure AKS kullanacağım. Sizde kendi ortamınızda ki herhangi bir Kubernetes clusterına bağlanabilir veya Azure üzerinde yeni bir Kubernetes kurulumu yapabilirsiniz. Kubernetes kurulumu için Mshowto içerisinde ki Kubernetes kurulumu makalelerini inceleyebilirsiniz.

Helm client kuruluduktan sonra ilgili Kubernetes clusterına bağlanırdak sonra “helm init” komutunu yazmanız sunucu da tiller’ın kurulmasını sağlayacaktır.

Helm içerisinde hazır repository url’leri vardır buralarda arama yapmak için search komutunu kullanabilirsiniz.

Helm search wordpress

Resim-2

Kubernetes üzerine wordpress kurulumu yapmak için “helm search wordpress” komutu ile chart araması yaptım.

Gördüğünüz gibi 7.0.1 versiyon numaralı bir chart’ım var.

Bu Chart’ I indirmek için “Helm fetch stable/wordpress” yazmamız yeterli.

Chart’ın paketini download ettik.

Resim-3

Bu paketi deployment’a hazır bir şekilde geldi. Helm paketleri tgz olarak paketlenir ve bu şekilde deploy edilir.

Paketi incelemek veya editlemek istiyorsanız.

“Helm fetch stable/wordpress –untar” komutunu kullanabilirsiniz.

Resim-4

Untar olarak aldığımız paketin içeriği yukarıda ki gibidir.

Yukarıda ki klasörde ki dosyaları inceleyecek olursak.

Chart.yaml: Chart hakkında ki bilgileri buluduran yaml dosyası

Readme.Md: Açıklama ve text yazabileceğiniz md dosyası

Requirements.yaml: Chart’ın ön gereksinimlerinin bulunduğu dosya

Values.yaml: Chart içerisinde ki değerlerin parametrik olarak alındığı dosya.

Templates klasörü: Values dosyasında ki değerler ile deployment dosyalarını(yaml dosyaları) birleştirerek Kubernetes manifest dosyaları buradan oluşturulur.

Resim-5

Gördüğünüz gibi değerler bu values.yaml dosyasından geliyor.

Resim-6

Yukarıda gördüğünüz gibi deployment değişkenler values.yaml dosyasından alınacak şekilde parametrik.

Bu değişkenleri Devops araçlarından parametrik olarak, tek tek tüm dosyalarda değiştirmek yerine sadece values file da değiştirerek otomatize edebilirsiniz.

Chart dosya yapısını da incelediğimize göre deployment aşamasına geçebiliriz.

Daha öncede bahsettiğim gibi deployment yapabilmeniz için Kubernetes clusterınıza bağlı olmanız gerekiyor. Yani current context de ilgili cluster bilgisinin olması gerekir.

Helm install stable/wordpress komutu ile deployment yapıyoruz.

Resim-7

Deployment’ımız tamamlandı.

Resim-8

Kubernetes üzerinde chart da tanımlanan ilgili kaynakları görüyoruz.

Kurduğumuz kaynakları silmek için ise, helm chart instalları listeleyip(“helm list”) ismi ile delete komutunu kullanmanız yeterli(“helm delete <chart deployment name>”).

Resim-9

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGS: helm, helm chart, tiller, helm nedir, Kubernetes paket yönetimi, Kubernetes uygulama kurulumu, Kubernetes deployment, helm chart deployment, package management, Kubernetes service kurulumu, Kubernetes microservice kurulumu,kubernetes nedir

Bu İçeriğe Tepkin Ne Oldu?
  • 6
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 2
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Onur Yüksektepeli - Chief Technology Architect | Micosoft MVP Onur Yüksektepeli Nephocraft firmasının kurucusu aynı zamanda kendi firmasında teknoloji çözümleri mimarıdır. 15 Yıldan fazla IT tecrübesi ile temel uzmanlık alanı olan Platform ve diğer teknolojiler için müşterilerine ürün ve hizmetler sunmaktadır. Microsoft MVP ünvanına sahip Onur Yüksektepeli birçok IT etkinliğinde aktif konuşmacı olarak ve IT topluluklarında yönetici olarak aktif rol üstlenmektedir. Nephocraft firmasın da yönetici olarak oluşturduğu çözümlerde yeni teknoloji gelişmelerini de göz önünde bulundurarak, müşterilerine esnek, yenilikçi, akıllı ve üretken iş çözümleri üretmektedir.Onur Yüksektepeli bulut, platform, data, devops, development gibi konularda aktif danışmanlık ve IT eğitmenliğine de devam etmektedir.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

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