Kubernetes – Membuat Helm Chart Manual

Apa itu Helm?

Jika Kubernetes adalah sistem operasi, maka Helm akan menjadi paket manager dari Kubernetes. Ubuntu menggunakan apt, CentOS menggunakan yum, dan Kubernetes menggunakan helm.

Helm menyebarkan aplikasi paket ke Kubernetes dan menyusunnya ke dalam bagan. Bagan berisi semua sumber daya aplikasi yang telah dikonfigurasi sebelumnya bersama dengan semua versi ke dalam satu paket yang mudah dikelola.

Helm menyederhanakan pemasangan, peningkatan, pengambilan dependensi, dan konfigurasi penerapan di Kubernetes dengan perintah CLI sederhana. Paket perangkat lunak ditemukan di repositori atau dibuat.

Apa itu Helm Chart?

Helm memungkinkan pengembang perangkat lunak untuk menyebarkan dan menguji lingkungan dengan cara yang paling sederhana. Lebih sedikit waktu yang dibutuhkan untuk beralih dari pengembangan ke pengujian hingga produksi.

Selain meningkatkan produktivitas, Helm menghadirkan cara yang nyaman bagi pengembang untuk mengemas dan mengirim aplikasi ke pengguna akhir untuk dipasang

Membuat Helm Chart

Hal yang pertama yang harus dipastikan sebelum membuat Helm Chart yaitu apakah Helm sudah terinstall terlebih dahulu. Namun pada kasus ini Helm telah terinstall dan siap digunakan. Pada kasus kali ini kita akan menamai Helm chart yang kita buat dengan nama nginx-helm. Untuk perintah membuatnya bisa mengikuti dibawah ini:

helm create nginx-helm

Jika sukses maka akan terbentuk sebuah folder bernama nginx-helm dan isi file di dalam foldernya akan seperti berikut:

Oke, Helm chart yang akan kita buat kali ini akan berisi kontainer nginx dan akan terexpose sebagai NodePort. Untuk memulainya hilangkan semua commented line atau baris yang diawali dengan # pada file values.yml. Caranya dengan backup terlebih dahulu file values.yaml dengan perintah dibawah ini:

mv values.yaml values.yaml.bak 

Lalu untuk menghapus commented line silahkan menggunakan perintah dibawah ini:

sed '/^[[:space:]]*$/d;/^[[:blank:]]*#/d;s/#.*//' values.yaml.bak > values.yaml

Lalu edit file values.yaml dan sesuaikan seperti dibawah ini:

replicaCount: 3
image:
  repository: nginx
  pullPolicy: Always
  tag: ""
imagePullSecrets: []
nameOverride: "nginx-helm-app"
fullnameOverride: "nginx-chart"
serviceAccount:
  create: true
  annotations: {}
  name: "nginx-helm"
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
service:
  type: NodePort
  port: 80
ingress:
  enabled: false
  className: ""
  annotations: {}
  hosts:
    - host: chart-example.local
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls: []
resources: {}
autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 100
  targetCPUUtilizationPercentage: 80
nodeSelector: {}
tolerations: []
affinity: {}

Simpan file tersebut dengan nama default yaitu values.yaml. Helm chart diatas kita akan membuat sebuah deployment dengan 3 replika dengan menggunakan kontainer nginx dan akan mengexpose port dengan type NodePort.

Mendeploy Helm Chart

Pengeditan file values.yaml telah saatnya kita eksekusi. Untuk mengeksekusinya bisa dengan menggunakan perintah seperti dibawah ini:

helm install nginx-chart nginx-helm/ --values nginx-helm/values.yaml

Untuk melihat hasil deployment nya bisa dengan perintah kubectl get deployment

Oke, deployment nginx menggunakan Helm chart telah selesai.

Mengedit Helm Chart

Untuk mengedit Helm chart bisa dengan kembali mengedit file values.yaml. Pada kasus kali ini kita akan mencoba mengedit service type pada deployment nginx-chart yang tadinya NodePort menjadi ClusterIP. Sebelumnya lihat service yang di buat oleh Helm chart dengan perintah kubectl get service

Kita akan mengubahnya menjadi ClusterIP, untuk memulainya bisa dengan mengedit file values.yaml dan sesuaikan seperti dibawah ini:

Simpan lalu jalankan menggunakan perintah seperti dibawah ini:

helm install –upgrade nginx-chart nginx-helm/ --values nginx-helm/values.yaml

Oke, kita sudah mengeditnya. Karena yg kita edit adalah service maka kita lihat service nya, sudah berubah menjadi ClusterIP apa belom dengan perintah kubectl get service

Nah, sudah berubah menjadi ClusterIP yang berarti pengeditan telah berhasil.

Menghapus Helm Chart

Oke yang terakhir adalah menghapus Helm chart. Untuk mengapusnya bisa di lihat dulu deployment yang dibuat oleh helm dengan menggunakan perintah helm ls

Lalu untuk menghapusnya gunakan perintah helm uninstall nginx-chart

Oke mungkin cukup sekian dengan artikel kali ini mohon maaf bila banyak kesalahan sekian dan terima kasih.

Write a comment