Kubernetes Helm Charts Guide DevOps

Kubernetes Helm Charts Guide

📅 2026-02-09 | โดย อ.บอม กิตติทัศน์ เจริญพนาสิทธิ์ — SiamCafe.net Since 1997

Kubernetes Helm Charts Guide คืออะไร / ทำไมถึงสำคัญ

น้องๆ เคยปวดหัวกับการ deploy application บน Kubernetes ไหม? สมัยผมทำร้านเน็ต SiamCafe เจอเคส app พังทุกวัน! เพราะ config ไม่ตรงกันบ้าง, dependency หายบ้าง, สารพัดปัญหาจุกจิก Helm Charts นี่แหละคือพระเอกที่จะมาช่วยเราแก้ปัญหานี้

ง่ายๆ เลย Helm Charts คือ package manager ของ Kubernetes คิดซะว่ามันคือ apt-get ของ Ubuntu หรือ yum ของ CentOS แต่สำหรับ Kubernetes โดยเฉพาะ มันช่วยให้เรา define, install, และ upgrade application บน Kubernetes ได้ง่ายมากๆ

ทำไมมันถึงสำคัญ? ลองนึกภาพว่าเราต้อง deploy Wordpress, MySQL, และ Load Balancer บน Kubernetes แต่ละ component ต้อง config ต่างกัน, resource requirement ต่างกัน, แถมยังต้อง manage dependency อีก โอ๊ย! ปวดหัว! Helm Charts ช่วยให้เรา package ทุกอย่างเป็น package เดียว, config ผ่านตัวแปรได้, และ deploy ได้ด้วย command เดียว ชีวิตง่ายขึ้นเยอะ!

พื้นฐานที่ต้องรู้

ก่อนจะไปลุย Helm Charts มีพื้นฐานสองสามอย่างที่น้องๆ ต้องรู้ก่อนนะ ไม่งั้นจะงงเป็นไก่ตาแตก

Kubernetes เบื้องต้น

อันนี้ขาดไม่ได้เลย น้องๆ ต้องเข้าใจ concept พื้นฐานของ Kubernetes ก่อน เช่น Pod, Service, Deployment, Namespace, ConfigMap, Secret ถ้าไม่เข้าใจพวกนี้ Helm Charts ก็ช่วยอะไรไม่ได้มาก

ลองนึกภาพ Kubernetes เป็น OS ของ Cloud ส่วน Pod คือ process ที่รันอยู่บน OS นั้น Service คือ network ที่ expose process นั้นให้คนอื่นใช้ Deployment คือ controller ที่ manage process นั้นให้รันตลอดเวลา (auto restart) ConfigMap คือที่เก็บ config ของ process และ Secret คือที่เก็บ password หรือ sensitive data

YAML

Helm Charts ใช้ YAML เป็น format ในการ define ทุกอย่าง ตั้งแต่ template, config, ไปจนถึง dependency ดังนั้นน้องๆ ต้องคุ้นเคยกับ YAML syntax บ้าง

YAML เป็น format ที่อ่านง่ายกว่า XML (สมัยก่อนผมใช้ XML config firewall) แต่ก็มี trick เล็กๆ น้อยๆ ที่ต้องระวัง เช่น indentation สำคัญมาก, comment ใช้เครื่องหมาย #, และ string ต้องอยู่ใน double quote (") ถ้ามี special character

วิธีใช้งาน / เริ่มต้นยังไง

มาถึงส่วนที่สนุกที่สุดแล้ว! วิธีใช้งาน Helm Charts ไม่ยากอย่างที่คิด แค่มี command line tool ที่ชื่อ helm และ Kubernetes cluster ก็พร้อมลุย!

ขั้นตอนแรกคือ install helm น้องๆ สามารถ download ได้จาก Helm official website หรือใช้ package manager ของ OS ตัวเองก็ได้ เช่น


# บน macOS
brew install helm

# บน Ubuntu/Debian
sudo apt update
sudo apt install helm

ขั้นตอนปฏิบัติจริง

หลังจาก install helm แล้ว เรามาลอง deploy application ง่ายๆ กัน

Deploy Bitnami Wordpress

Bitnami มี Helm Charts ที่พร้อมใช้งานเยอะมาก เราจะลอง deploy Wordpress ง่ายๆ กัน


# Add Bitnami repository
helm repo add bitnami https://charts.bitnami.com/bitnami

# Update repository
helm repo update

# Install Wordpress
helm install my-wordpress bitnami/wordpress

helm install my-wordpress bitnami/wordpress จะ download Helm Charts ของ Wordpress จาก Bitnami repository, generate Kubernetes manifest files จาก template และ config, และ deploy ทุกอย่างบน Kubernetes cluster ของเรา

หลังจาก deploy เสร็จแล้ว น้องๆ สามารถดู status ของ deployment ได้ด้วยคำสั่ง


helm status my-wordpress

ถ้าทุกอย่างเรียบร้อย น้องๆ จะเห็น URL ที่ Wordpress รันอยู่ สามารถเข้าใช้งานได้เลย ง่ายไหมล่ะ?

Custom Values

ทีนี้ลองมาปรับแต่งค่า config ของ Wordpress กันบ้าง Helm Charts อนุญาตให้เรา override default values ด้วยไฟล์ values.yaml

ก่อนอื่นเราต้อง download default values.yaml ของ Wordpress มาก่อน


helm show values bitnami/wordpress > values.yaml

จากนั้นแก้ values.yaml ตามต้องการ เช่น เปลี่ยน password ของ MySQL


# values.yaml
mariadb:
  auth:
    rootPassword: "my-new-password"

แล้ว deploy Wordpress ด้วย values.yaml ที่เราแก้


helm upgrade my-wordpress bitnami/wordpress -f values.yaml

helm upgrade จะ update deployment ของ Wordpress ด้วย config ใหม่ที่เรากำหนด

เปรียบเทียบกับทางเลือกอื่น

นอกจาก Helm Charts แล้ว ยังมี tool อื่นๆ ที่ช่วยจัดการ application บน Kubernetes ได้ เช่น Kustomize, Operators, และ plain YAML files แต่ละ tool ก็มีข้อดีข้อเสียต่างกัน

Kustomize เหมาะสำหรับคนที่ต้องการ customize Kubernetes manifest files โดยไม่ต้องเขียน template Operators เหมาะสำหรับ application ที่ซับซ้อนมากๆ และต้องการ custom logic ในการ manage plain YAML files เหมาะสำหรับ application ง่ายๆ ที่ไม่ต้อง config อะไรมาก

Tool ข้อดี ข้อเสีย เหมาะสำหรับ
Helm Charts ง่ายต่อการใช้งาน, มี Charts ให้เลือกเยอะ, Manage dependency ได้ ต้องเรียนรู้ template syntax, อาจจะซับซ้อนสำหรับ application ที่ simple Application ทั่วไป, Microservices
Kustomize ไม่ต้องเขียน template, Customize ได้ละเอียด Manage dependency ไม่ได้, อาจจะซับซ้อนสำหรับ application ที่ซับซ้อน Application ที่ต้องการ customize เยอะๆ
Operators Manage application ที่ซับซ้อนได้ดี, Custom logic ได้ ซับซ้อน, ต้องเขียน code เอง Database, Message Queue
Plain YAML ง่าย, ไม่ต้องเรียนรู้อะไรใหม่ Manage application ที่ซับซ้อนไม่ได้, Config ยาก Application ที่ simple มากๆ

สรุปแล้ว Helm Charts เป็นทางเลือกที่ดีสำหรับคนที่ต้องการจัดการ application บน Kubernetes อย่างง่ายและมีประสิทธิภาพ มันช่วยให้เรา deploy, upgrade, และ rollback application ได้ง่ายมากๆ ลองเอาไปใช้กันดูนะ!

ถ้าอยากอ่านเรื่อง DevOps หรือ Kubernetes เพิ่มเติม แวะไปที่ SiamCafe Blog ได้เลย มีบทความดีๆ อีกเพียบ

อย่าลืมว่า Kubernetes เป็นโลกที่กว้างใหญ่ ต้องใช้เวลาเรียนรู้และฝึกฝนเยอะๆ แต่ถ้าตั้งใจจริง ผมเชื่อว่าน้องๆ ทำได้แน่นอน! สู้ๆ!

แล้วเจอกันใหม่บทความหน้า ขอให้สนุกกับการ deploy application บน Kubernetes นะครับ!

อย่าลืมแวะไปอ่านบทความอื่นๆ ที่ SiamCafe Blog กันด้วยนะ

🎬 วิดีโอแนะนำ

ดูวิดีโอเพิ่มเติมเกี่ยวกับKubernetes Helm Charts Guide:

Best Practices / เคล็ดลับจากประสบการณ์

เอาล่ะน้องๆ มาถึงส่วนสำคัญแล้ว เคล็ดลับที่พี่บอมแกะมาจากประสบการณ์จริงโชกโชน สมัยทำร้านเน็ตคาเฟ่ต้องแก้ปัญหาจุกจิกทุกวัน เรื่อง Helm Charts ก็เหมือนกัน ทำไปเจอปัญหาไป เรียนรู้กันหน้างานนี่แหละ

พี่จะเน้นเรื่องที่คนมักมองข้าม หรือไม่ค่อยมีใครพูดถึงกันนะ เตรียมจดกันให้ดีๆ

เทคนิคที่ 1: Versioning is King

อันนี้สำคัญสุดๆ Helm Charts ต้องมี version ควบคุมเสมอ! อย่าปล่อยให้เป็น latest เด็ดขาด เหมือนตอนอัพเดทเกมร้านเน็ต สมัยก่อน ถ้าไม่ระบุ version ให้ดี เครื่องลูกลงเกมไม่พร้อมกัน ลูกค้าโวยวายแน่นอน

ใช้ Semantic Versioning (SemVer) ให้เป็นประโยชน์ major.minor.patch จะช่วยบอกได้ว่าเป็นการเปลี่ยนแปลงแบบไหน

เทคนิคที่ 2: ConfigMaps and Secrets Management

อย่าใส่ค่า config ต่างๆ ลงใน Chart โดยตรง! โดยเฉพาะพวก password, API key อะไรพวกนี้ อันตรายมาก

ให้ใช้ ConfigMaps และ Secrets ของ Kubernetes แทน แล้ว inject เข้าไปใน Pod ผ่าน environment variables หรือ volume mounts


apiVersion: v1
kind: ConfigMap
metadata:
  name: my-app-config
data:
  database_url: "jdbc:mysql://my-db:3306/mydb"

เหมือนตอนเซ็ตค่า proxy ในร้านเน็ต สมัยก่อน ต้องแยก config ออกจากโปรแกรมหลัก เพื่อความปลอดภัยและง่ายต่อการแก้ไข

เทคนิคที่ 3: Testing, Testing, Testing!

ก่อน deploy Chart ขึ้น production ต้องทดสอบให้ดีก่อนนะน้อง อย่ามั่นใจเกินไปว่าทุกอย่างจะเรียบร้อย

ใช้ Helm lint และ Helm test เพื่อตรวจสอบ syntax และ functionality เบื้องต้น


helm lint my-chart
helm test my-release

เหมือนตอนลงเกมใหม่ในร้าน ต้องเทสก่อนว่าเล่นได้จริง ไม่มีบัค ไม่งั้นลูกค้าด่ากระจาย

เทคนิคที่ 4: Dry Run & Debug

ก่อนจะ Deploy Helm Chart จริงๆ ให้ลองทำ Dry Run ก่อน เพื่อดูว่า Kubernetes resources ที่จะถูกสร้างขึ้นมาหน้าตาเป็นยังไง จะได้รู้ว่ามีอะไรผิดพลาดหรือเปล่า


helm install my-release my-chart --dry-run --debug

เหมือนตอนที่เราลอง Set ค่า Default Gateway ในร้าน Internet Cafe ก่อนที่จะ Apply จริงๆ ถ้า Apply ไปเลยแล้วเกิด Error ขึ้นมา จะวุ่นวายน่าดู

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

ทำไมต้องใช้ Helm Charts?

Helm Charts ช่วยให้การ deploy application บน Kubernetes ง่ายขึ้นเยอะมากๆ จัดการ dependencies, configuration ได้เป็นระบบ แถมยังสามารถ versioning ได้อีกด้วย

Helm กับ Kustomize ต่างกันยังไง?

Helm เป็น package manager ที่จัดการ template และ dependencies ได้ ส่วน Kustomize เน้นการ customize Kubernetes manifests แบบ declarative เลือกใช้ตามความเหมาะสมของงาน

Chart Repository คืออะไร?

Chart Repository คือที่เก็บ Helm Charts เหมือน app store สำหรับ Kubernetes สามารถใช้ public repository หรือสร้าง private repository เองก็ได้

เวลา Chart มีปัญหา จะ debug ยังไง?

ลองใช้ helm get manifest เพื่อดู Kubernetes manifests ที่ถูก generate ออกมา แล้วดู logs ของ Pods หรือ Services ที่เกี่ยวข้อง

iCafeForex

Helm version ไหนดีที่สุด?

ส่วนตัวพี่แนะนำให้ใช้ Helm 3 เพราะง่ายกว่า Helm 2 เยอะ ไม่ต้องมี Tiller แถมยังปลอดภัยกว่าด้วย

สรุป

Helm Charts เป็นเครื่องมือที่ช่วยให้การจัดการ Kubernetes ง่ายขึ้นมากๆ แต่ก็ต้องเรียนรู้และทำความเข้าใจอย่างถ่องแท้ อย่ากลัวที่จะลองผิดลองถูก เดี๋ยวก็เก่งเอง

หวังว่าบทความนี้จะเป็นประโยชน์กับน้องๆ นะครับ แล้วเจอกันใหม่บทความหน้า SiamCafe Blog มีอะไรดีๆ อีกเยอะ