Home TürkçeKubernetes Kubernetes – Helm Paket Yöneticisi

Kubernetes – Helm Paket Yöneticisi

by Fatih Boy
5 comments

Bu yazıyı kaleme almam ardından geçen zaman zarfında Helm’in yeni major sürümü olan v3 yayınlandı. Yapısal farklılıklar barındırması ve topluluğun Helm 3’ü destekleyecek olması nedeniyle güncel Helm Paket Yöneticisi v3 ve kurulumunu anlattığım makalemi okumanızı tavsiye ederim.

Kubernetes’te uygulama ayağa kaldırmak, işin içinde container teknolojisi de olsa, bazen karmaşık olabilir. Podlar, servisler, deployment’lar, ingress’ler, secret’ler, configmap’ler… Hataya açık yapılandırmalar. Ortak kurulum deneyiminin paylaşılması… Bu konuda pek çok platform paket yönetici çözümleri geliştirerek süreci basitleştirmiş durumda. Kubernetes’de bu konuda istisna değil.  Kubernetes’te uygulama deploy sürecini basitleştirmek, deyim yerindeyse hap haline getirmek amacıyla Helm paket yöneticisi geliştirilmiştir. Açık kaynak kodlu bir Cloud Native Foundation projesi olarak karşımıza çıkan Helm, Kubernetes için önemli projelerden birisidir.

Helm’de uygulama dağıtımı Chart denilen paket’ler yardımıyla gerçekleşmektedir. Helm Chart’ları; bağımlılık tanımları, yapılandırma dosyaları ve kuruluma esas olacak Kubernetes manifest dosya şablonlarından oluşmaktadır. Kurulum/güncelleme sırasında helm’e vereceğiniz parametreler doğrultusunda bu yapılandırma ve manifest şablon dosyaları yorumlanarak kurulum veya güncelleme yapacak manifest’ler meydana gelecektir. Oluşan bu manifest dosyalarının çalıştırılmasıyla bir Release (sürüm) oluşacaktır. Release, bir Helm chart ile o andaki yapılandırmasının birleşimidir. Helm, release’leri versiyonlar ve önceki bir release’e dönüş yapılabilmesine (rollback) olanak sunar.

Chart Yapısı

Helm Chart’ları aşağıdaki dosya ve dizin yapısına sahiptir;

Charts/Helm Chart’ının gereksinim duyduğu ve bağımlı olduğu Chart’ların yer aldığı dizindir.
Templates/Çalıştırılacak Kubernetes manifestlerini oluşturacak olan dosya şablonlarının bulunduğu dizindir. Şablon dosyaları Go programlama dili şablon formatında olmalıdır.
Templates/NOTES.txtKısa kullanım notlarının yer aldığı text dosyasıdır. Opsiyonel olan bu dosya içeriği kurulum ve güncelleme sonunda kullanıcıya gösterilecektr.
Chart.yamlChart bilgilerinin yer aldığı yaml dosyası
LICENSEChart lisans bilgilerinin yer aldığı lisans dosyası. Bu dosya opsiyoneldir.
README.mdChart beni-oku dosyası. Bu dosya opsiyoneldir.
requirements.yamlHelm Chart’ının gereksinim duyduğu ve bağımlı olduğu Chart’lar. Bu dosya opsiyoneldir.
values.yamlChart parametrelerinin varsayılan değerlerinin yer aldığı yaml dosyasıdır.

Bu dizin hiyerarşisine sahip olan Helm Chart’ları dağıtımı kolay olması adına tar.gz dosyası haline getirilebilir.

Helm Paket Kaynakları

Helm Chart’ları bir önceki bölümde paylaştığım yapıya sahip yerel bir dizinde, bir tar.gz dosyası ya da bir Helm deposunda bulunabilir. Kurulumla birlikte https://kubernetes-charts.storage.googleapis.com/ adresi varsayılan depo olarak kayıt edilir. Bunun yanında kullanıcılar kendi depolarını da ekleyebilir. Varsayılan olarak gelen Helm Chart deposu veriyonları github üzerinde takip edilmektedir.

Helm Mimarisi

Mevcut Helm 2 sürümünde Helm mimarisinin iki bileşeni bulunmaktadır;

Helm-Mimarisi
  • Helm Client: Helm ilklendirmesi ve chart yönetimi sağlayan istemci uygulamasıdır. İşlemlerin yerine gelmesi için Tiller ile iletişim kurar.
  • Tiller:  Helm istemcisince iletilen komutları yorumlayarak Kubernetes API’si ile iletişime geçer ve komutları yerine getirir. Sürüm yönetimi de yine Tiller tarafından yapılmaktadır. Tiller Kubenertes Cluster üzerinde pod olarak çalışmaktadır. Kubernetes’e deployment olarak kurulması nedeniyle hata alması durumunda Kubernetes tarafından yeniden zamanlanacaktır (schedule).

Şu Yazıları da Sevebilirsiniz

5 comments

Helm Paket Yöneticisi Kurulumu - Fatih'in Notları 18 Temmuz 2019 - 10:28

[…] Bir önceki makalemde sizlere Helm paket yöneticisin ve mimarisinden bahsetmiştim. Şimdi sıra geldi Helm paket yöneticisi kurulumunu gerçekleştirmeye. Aşağıdaki adımlar takip edilerek mevcut bir kubernetes cluster’ında helm kurulumu gerçekleştirilebilir. […]

Reply
Kubernetes Eğitimi: Helm Kurulumu - Fatih'in Notları 10 Eylül 2019 - 09:46

[…] önceli makalelerimde sizlere Helm mimarisini tanıtmış, kurulumu anlatmış ve göstermiştim. Bir süredir Kubernetes makalelerimi daha etkileşimli hale […]

Reply
Kubernetes Üzerinde Docker Registery Kurulumu - Fatih'in Notları 30 Eylül 2019 - 10:12

[…] kurulu olduğunu varsayıyorum.  Helm’in mimarisi ve ne olduğu hakkında detaylı bilgiye bu makalemde ulaşabilirsiniz. Sisteminize Helm kurmak için ise bu makalemdeki adımları takip […]

Reply
Helm 3, Kubernetes Paket Yönetici - Fatih'in Notları 29 Kasım 2019 - 09:32

[…] Helm paket yöneticisi geliştirilmiştir. Hatırlarsanız daha önce size Helm 2 Paket Yönetici yapısı ve kurulumu hakkında bilgi vermiştim. Geçen zaman içerisinde Helm Paket Yönetici yapısal […]

Reply
Kubernetes Operator'leri ve Operator Framework - Fatih'in Notları 2 Aralık 2019 - 09:21

[…] başlatılabilir. Belirli bir düzende takip edilmesi gereken bu kurulum, tahmin edeceğiniz gibi Helm ile yapılamayacak kadar karışıktır. Helm için karışık olan bu akış bir Custom Controller […]

Reply

Leave a Comment

* Bu formu kullanarak, verilerinizin bu web sitesi tarafından saklanması ve kullanılmasını kabul ediyorsunuz.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bunu kabul ettiğinizi varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul Et Daha Fazla Bilgi