Skip to main content

Helm

บทนำ

Helm เป็นเครื่องมือจัดการแพ็กเกจ (Package Manager) สำหรับ Kubernetes ที่ช่วยลดความซับซ้อนในการติดตั้งและจัดการแอปพลิเคชันใน Kubernetes Cluster Helm ใช้แนวคิดของ Charts ซึ่งเป็นชุดคำสั่งและไฟล์ที่อธิบายวิธีการ Deploy แอปพลิเคชัน

คุณสมบัติของ Helm

  1. การติดตั้งที่ง่าย: ใช้คำสั่งเดียวเพื่อ Deploy แอปพลิเคชันที่ซับซ้อน
  2. การอัปเกรดและย้อนกลับ (Rollback): สามารถอัปเกรดหรือย้อนกลับเวอร์ชันของแอปพลิเคชันได้ง่าย
  3. การแชร์แอปพลิเคชัน: สามารถใช้ Charts ที่สร้างขึ้นใหม่หรือที่มีอยู่แล้วจาก Helm Repository
  4. การกำหนดค่าที่ง่าย: รองรับการตั้งค่าแบบ Custom ผ่านไฟล์ values.yaml

แนวคิดหลักใน Helm

1. Charts

  • เป็นชุดของไฟล์ที่ใช้กำหนดแอปพลิเคชัน รวมถึง Kubernetes Resources ต่าง ๆ
  • ประกอบด้วยไฟล์สำคัญ เช่น
    • Chart.yaml: ข้อมูลเกี่ยวกับ Chart เช่น ชื่อและเวอร์ชัน
    • values.yaml: ค่าพื้นฐานที่ใช้สำหรับการตั้งค่า
    • เทมเพลตในโฟลเดอร์ templates/: ไฟล์ YAML ที่สามารถกำหนดค่าแบบไดนามิก

2. Releases

  • การ Deploy ของ Chart จะเรียกว่า Release
  • สามารถสร้างหลาย Release จาก Chart เดียวกันได้

3. Repositories

  • ที่เก็บ Charts ที่สามารถค้นหาและดาวน์โหลดได้ เช่น ArtifactHub

การติดตั้ง Helm

1. ติดตั้ง Helm CLI

บน Linux

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

บน macOS

brew install helm

บน Windows

choco install kubernetes-helm

2. ยืนยันการติดตั้ง

helm version

การใช้งาน Helm เบื้องต้น

1. เพิ่ม Repository

helm repo add bitnami https://charts.bitnami.com/bitnami

2. ค้นหา Charts

helm search repo bitnami

3. ติดตั้ง Chart

helm install my-release bitnami/nginx

4. ตรวจสอบสถานะ Release

helm list

5. อัปเกรด Release

helm upgrade my-release bitnami/nginx

6. ลบ Release

helm uninstall my-release

การสร้าง Custom Chart

1. สร้าง Chart ใหม่

helm create my-chart

2. แก้ไขไฟล์ใน my-chart

  • เพิ่มการตั้งค่าใน values.yaml
  • ปรับแต่งเทมเพลตใน templates/

3. ติดตั้ง Chart ที่สร้างขึ้น

helm install my-release ./my-chart

การจัดการค่า Config ด้วยไฟล์ values.yaml

  • แก้ไขไฟล์ values.yaml เพื่อปรับแต่งค่าที่ใช้ในเทมเพลต
  • ตัวอย่าง:
replicaCount: 2
image:
repository: nginx
tag: latest
service:
type: ClusterIP
port: 80

การ Override ค่า

helm install my-release ./my-chart --set replicaCount=3

Best Practices สำหรับการใช้งาน Helm

  1. ใช้ Repository ที่น่าเชื่อถือ: ตรวจสอบแหล่งที่มาของ Charts ก่อนใช้งาน
  2. กำหนดค่าผ่าน values.yaml: เพื่อความเป็นระเบียบและติดตามการเปลี่ยนแปลงได้ง่าย
  3. ใช้ Helm Secrets: สำหรับจัดการข้อมูลที่สำคัญ เช่น API Keys
  4. ทดสอบ Charts ใหม่ใน Environment แยก: เพื่อลดความเสี่ยง
  5. อัปเดต Charts และ Helm CLI อย่างสม่ำเสมอ: เพื่อให้ได้ฟีเจอร์ใหม่และความปลอดภัย

สรุป

Helm ช่วยลดความซับซ้อนในการจัดการ Kubernetes Applications โดยการใช้ Charts ที่สามารถปรับแต่งได้ การเรียนรู้และใช้งาน Helm อย่างถูกต้องสามารถช่วยเพิ่มประสิทธิภาพและความคล่องตัวในการทำงานใน Kubernetes Cluster