Dasar-dasar Helm

Selesai

Saat menyebarkan, membuat versi, dan memperbarui aplikasi, Anda perlu memastikan Anda memiliki versi pustaka dan konfigurasi perangkat lunak yang benar sehingga aplikasi berfungsi seperti yang diharapkan.

Katakanlah tim pengembangan Anda memutuskan untuk menyebarkan situs web perusahaan toko hewan peliharaan ke Kubernetes. Sebagai bagian dari proses, tim Anda membuat penyebaran, layanan, dan file berbasis ingress YAML. Anda melakukan hardcode dan mempertahankan informasi di setiap file untuk setiap lingkungan target secara manual. Namun, mempertahankan tiga file untuk setiap lingkungan rumit dan meningkatkan kompleksitas saat aplikasi tumbuh.

A diagram that shows a container deployed to a Kubernetes node using a deployment, a service, and an ingress YAML file.

Anda dapat menggunakan Helm untuk menyederhanakan proses penyebaran aplikasi dan menghindari variabel dan pengaturan penyebaran yang di-hardcode.

Apa yang dimaksud dengan Helm?

Helm adalah manajer paket untuk Kubernetes yang menggabungkan semua sumber daya aplikasi dan informasi penyebaran ke dalam satu paket penyebaran.

A diagram shows a containerized app deployed to a Kubernetes cluster using a Helm chart.

Anda dapat memikirkan Helm yang mirip dengan Pengelola Paket Windows di Windows, Advanced Package Tool (apt) di Linux, atau Homebrew di macOS. Anda menentukan nama aplikasi yang ingin Anda instal, perbarui, atau hapus, lalu Helm akan menangani prosesnya.

Dengan Helm, Anda tidak terbatas pada penginstalan satu aplikasi pada satu waktu. Helm memungkinkan Anda membuat file skrip YAML dengan templat yang dapat dibaca manusia untuk mengelola penyebaran aplikasi Anda. File templat ini memungkinkan Anda menentukan semua dependensi yang diperlukan, pemetaan konfigurasi, dan rahasia yang digunakan untuk mengelola penyebaran aplikasi dengan sukses.

Helm menggunakan empat komponen untuk mengelola penyebaran aplikasi pada kluster Kubernetes:

  • Klien Helm
  • Bagan Helm
  • Rilis Helm
  • Repositori Helm

Apa itu klien Helm?

Klien Helm adalah biner yang diinstal klien yang bertanggung jawab untuk membuat dan mengirimkan file manifes yang diperlukan untuk menyebarkan aplikasi Kubernetes. Klien bertanggung jawab atas interaksi antara pengguna dan kluster Kubernetes.

A diagram shows the communication between three Helm components to create a Helm release; the client, chart, and repository.

Klien Helm tersedia untuk semua sistem operasi utama dan diinstal pada PC klien Anda. Di Azure, klien Helm telah diinstal sebelumnya di Cloud Shell dan mendukung semua fitur keamanan, identitas, dan otorisasi Kubernetes.

Catatan

Modul ini mengasumsikan penggunaan Helm v3. Anda dapat menjalankan perintah helm version untuk memeriksa versi Helm yang dijalankan perangkat klien Anda. Jika Anda menjalankan Helm v2, perlu diingat bahwa beberapa parameter perintah dalam modul ini akan berbeda.

Apa itu bagan Helm?

Bagan Helm adalah paket penyebaran templat yang menjelaskan sekumpulan sumber daya Kubernetes terkait. Ini berisi semua informasi yang diperlukan untuk membangun dan menyebarkan file manifes untuk aplikasi yang dijalankan pada kluster Kubernetes.

Bagan Helm terdiri dari beberapa file dan folder untuk mendiskripsikan bagan. Beberapa komponen diperlukan dan beberapa bersifat opsional. Pilihan Anda yang akan disertakan didasarkan pada persyaratan konfigurasi aplikasi.

Daftar berikut ini menjelaskan komponen file dan folder bagan Helm dengan item yang diperlukan dalam huruf tebal:

File/Folder Deskripsi
Chart.yaml File YAML yang berisi informasi tentang bagan.
values.yaml Nilai konfigurasi default untuk bagan.
templates/ Folder yang berisi templat penyebaran untuk bagan.
LICENSE File teks biasa yang berisi lisensi untuk bagan.
README.md File markdown yang berisi petunjuk tentang cara menggunakan bagan.
values.schema.json** File skema untuk menerapkan struktur pada file values.yaml.
charts/ Folder yang berisi semua sub-bagan ke bagan utama.
crds/ Definisi Sumber Daya Kustom.
templates/Notes.txt File teks yang berisi catatan penggunaan templat.

Apa yang dimaksud dengan rilis Helm?

Rilis Helm adalah aplikasi atau grup aplikasi yang disebarkan menggunakan bagan. Setiap kali Anda menginstal bagan, instans baru aplikasi dibuat pada kluster. Setiap instans memiliki nama rilis yang memungkinkan Anda berinteraksi dengan instans aplikasi tertentu.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The release is highlighted.

Misalnya, Anda menginstal dua instans Nginx ke kluster Kubernetes menggunakan bagan. Kemudian, Anda memutuskan untuk meningkatkan instans Nginx pertama, tetapi bukan yang kedua. Karena kedua rilis berbeda, Anda dapat meningkatkan rilis pertama tanpa memengaruhi yang kedua.

Apa yang dimaksud dengan repositori Helm?

Repositori Helm adalah server HTTP khusus yang menyimpan informasi tentang bagan Helm. Server menghosting file yang menjelaskan bagan dan tempat mengunduh setiap bagan.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The repository is highlighted.

Proyek Helm menyelenggarakan banyak bagan publik, dan banyak repositori tersedia dari mana Anda dapat menggunakan ulang bagan. Repositori helm menyederhanakan penemuan dan penggunaan ulang paket Helm.

Manfaat menggunakan Helm

Helm memperkenalkan sejumlah keuntungan yang menyederhanakan penyebaran aplikasi dan meningkatkan produktivitas dalam pengembangan dan penyebaran siklus hidup aplikasi cloud-native. Dengan Helm, Anda memiliki rilis aplikasi yang:

  • Berulang
  • Dapat diandalkan
  • Dapat dikelola di beberapa lingkungan dan kompleks, dan
  • Dapat digunakan ulang di berbagai tim pengembangan.

Bagan Helm menstandarkan penyebaran aplikasi menggunakan logika templat kemasan yang diparameterkan berdasarkan nilai input yang ditetapkan. Desain paket berbasis templat ini menyediakan pendekatan agnostik lingkungan untuk menyebarkan dan berbagi aplikasi cloud-native.