ข้ามไปเนื้อหาหลัก
คอนเทนเนอร์· ~14 นาที· อัปเดตล่าสุด

Helm — ตัวจัดการแพ็กเกจของ K8s

ติดตั้งชุด manifest ทั้งก้อนแบบปรับค่าได้ ด้วยคำสั่งเดียว

พื้นฐานที่ควรรู้: ในสมาร์ทโฟนเรามี App Store หรือ Play Store ให้กดโหลดแอปพร้อมใช้ได้เลย K8s เองก็มีแอปพื้นฐานหลายตัวที่คนทั้งโลกต้องใช้ (เช่น ระบบเก็บ Log, ระบบ Monitoring) แทนที่เราจะมานั่งเขียนไฟล์ YAML เองทีละบรรทัด เราสามารถใช้เครื่องมือจัดการแพ็กเกจมาช่วยติดตั้งได้

App Store สำหรับ K8s

Helm เหมือนแอปสโตร์ + ตัวติดตั้งของ K8s · แทนที่จะ apply ไฟล์ YAML ทีละสิบไฟล์เอง ก็ helm install ทั้งชุด (เช่นติดตั้ง Prometheus, nginx, PostgreSQL) แล้วปรับค่าผ่านไฟล์เดียว

Chart คือแพ็กเกจ Helm (รวม template ของ manifest + ค่า default) · เราปรับแต่งด้วย values.yaml โดยไม่ต้องแก้ template · ทำให้ deploy แอปเดียวกันหลาย environment ด้วยค่าต่างกันได้ง่าย

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-db bitnami/postgresql \
  --set auth.database=myapp        # ปรับค่าผ่าน --set หรือ -f values.yaml

helm upgrade my-db bitnami/postgresql -f values.yaml
helm rollback my-db 1              # ย้อนกลับ release เวอร์ชันก่อน
helm list                         # ดู release ที่ติดตั้งไว้
ใช้ Helm ติดตั้ง/อัปเกรด/ย้อน
helm status my-db
helm history my-db
helm rollback my-db <revision>
💻 Hands-on: ตรวจสอบและย้อนกลับ Helm Release

สรุป Key Takeaways

  • Helm = package manager ของ K8s · Chart = แพ็กเกจ, values.yaml = ค่าที่ปรับ
  • จัดการหลาย manifest เป็น release เดียว: install/upgrade/rollback/uninstall
  • ทางเลือก: Kustomize (overlay) — นิยมใช้คู่กัน

คำถามที่พบบ่อย

Helm แก้ปัญหาอะไรของ YAML ธรรมดา

สามเรื่อง: ทำซ้ำ (template + values แทน YAML ก๊อปแก้หลาย environment), แพ็คเกจ (ลงแอปซับซ้อนทั้งชุดด้วยคำสั่งเดียว), และจัดการ release (upgrade/rollback เป็นเวอร์ชัน) — คิดว่ามันคือ package manager ของ K8s แบบเดียวกับ apt/npm

helm install ของคนอื่นมา ควรตรวจอะไรก่อน

ดูว่า chart ทำอะไรจริงด้วย helm template แล้วอ่าน manifest ที่ generate ออกมา โดยเฉพาะสิทธิ์ RBAC ที่ขอ, resource ที่สร้าง, และค่า default ที่หลวม (เปิด service เป็น LoadBalancer, ไม่ตั้ง resource limit) — chart ดังๆ คุณภาพดีแต่ default ไม่ได้เหมาะกับทุกที่

อ่านจบแล้วอย่าลืมทำเครื่องหมาย