Helm – Manajemen Paket untuk Kubernetes

Helm adalah manajemen paket (package management) yang digunakan untuk platform-platform berbasis kubernetes . Helm memudahkan deployment dan manajemen dari aplikasi dengan menciptakan standarisasi paketisasi dan konfigurasi dari aplikasi-aplikasi berbasis kubernetes . Komponen utama dari Helm adalah komponen yang disebut Helm Charts.

Helm charts adalah koleksi dari berbagai file yang memberikan berbagai definisi kubernetes resources. File-file di bawah ini merupakan sebuah konstruksi helm chart dari sebuah aplikasi.

  • chart.yaml: yang berisikan informasi tentang sebuah chart
  • values.yaml. beriskan konfigurasi dasar (default) untuk chart
  • templates: merupakan sebuah direktori yang berisikan file-file yang digabungkan dengan values.yaml akan menghasilkan manifest dari aplikasi kubernetes yang valid.

Fitur utama Helm:

  • Pemaketan (Packaging):
    Helm chart akan membuat satu paket dari sumber daya yang dibutuhkan oleh satu aplikasi dalam satu arsip (archive)
  • Versioning:
    fitur ini memberikan informasi version dari aplikasi beserta konfigurasinya yang telah di-deploy.
    Dengan versioning ini, mempermudah update/upgrade dan rollback dari satu aplikasi.
  • Manajemen Dependensi
    Helm dapat menangani permasalahan dependensi dari berbagai macam chart yang dibutuhkan,
  • Template
    Helm menggunakan template Go yang memungkinkan konfigurasi dinamik yang dibutuhkan oleh manifest kubernetes. Template ini berguna saat kita menggunakan berbagai environment dan konfigurasi.
  • Konfigurasi
    Helm menggunakan template Go yang memungkinkan konfigurasi dinamik yang dibutuhkan oleh manifest kubernetes. Template ini sangat berguna saat berbagai jenis environment dan konfigurasi dipakai dalam pengembangan aplikasi.

Instalasi Helm

Instalasi Helm bisa dilakukan dengan cara menginstalasi source atau menggunakan pre-built dari rilis biner (release binary).

Dari Rilis Biner ( Binary Release)

Setiap release, proyek Helm mempersiapkan release untuk berbagai macam Operating System(OS).

  • Download version dari OS yang diinginkan
  • Lakukan komando berikut: 
$ tar -zxvf <helm-v3.0.0-linux-amd64.tar.gz>

< > — paket yang tertuis di atas mungkin berbeda dengan paket yang anda downloaded

  • tempatkan binary file dari helm ke direktori yang diinginkan, sebaiknya di $PATH, sehingga perintah helm dapat di-run dari direktori di mana saja.

Di sini hal ini yang saya lakukan:

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

Setelah perintah di atas, run perintah ini:

$ helm help | head 

The Kubernetes package manager

Common actions for Helm:

- helm search:    search for charts
- helm pull:      download a chart to your local directory to view
- helm install:   upload the chart to Kubernetes
- helm list:      list releases of charts

Environment variables:
                     .
                     . 
                     .
                     .
Use "helm [command] --help" for more information about a command.

Jika perintah helm help tidak menghasilkan output seperti di atas, ada kesalahan terjadi dalam ekseskusi proses sebelumnya. 

Dengan skrip

Helm mempunya skript installasi yang akan secara otomatis mendownload helm versi terakhir dan meng-installl-nya di computer lokal.
Berikut adalah langkah-langkah yang perlu dilakukan.

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
  • Tempatkan binary file dari helm ke direktori yang diinginkan, tempat yang biasa dan bagus digunakan adalah lokasi yang berada di variabel $PATH, sehingga perintah helm dapat di-run dari direktori di mana saja, seperti yang ditulis di atas. 

Langkah installasi di bawah ini, akan juga menginstalasi Helm dengan skript

$ curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

cara installasi terakhir ini, merupakan short cut yang beresiko akan keamanan dari lingkungan (environment) yang kita miliki (security risks). Untuk memverifikasi keberhasilan installasin helm client ini, dapat dilakukan dengan cara di bawah ini:

$ helm -h

Dengan Package Manager

Untuk Apt (Debian/Ubuntu)

$ 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

$ apt-get update
$ apt-get install helm
Package ManagerKomando
Homebrew (macOS)brew install helm
Chocolatey (Windows)choco install kubernetes-helm
Scoop (Windows)scoop install helm
Winget (Windows)winget install Helm.Helm
dnf/yum (fedora)sudo dnf install helm
Snapsudo snap install helm –classic
pkg (FreeBSD)pkg install helm

Artikel-artikel Helm di blog ini akan memberikan pengertian dasar dan penggunaan Chart Helm untuk berbagai aplikasi berbasis kontainer. Berbagai use case dari helm dijelaskan di halaman ini.

Kubernetes sendiri merupakan sebuah platform berbasis open source yang didisain untuk mengotomasi deployment dan pengoperasian berbagai aplikasi berbasis kontainer, Banyak berbagai solusi kubernetes yang berbayar seperti Amazon Web Service (AWS), Azure, Google Cloud Platform. Di blog ini saya menggunakan platform kubernetes yang diinstalasi secara lokal di komputer saya sendiri. Laptop yang saya gunakan adalah MacOS dan solusi lokal kubernetes yang saya gunakan adalah k3d. Di artikel akan dijelaskan bagaimana cara instalase k3d di komputer MacOS.

Related Posts

One thought on “Helm – Manajemen Paket untuk Kubernetes

Comments are closed.

Verified by MonsterInsights