0Pricing
DevOps Bootcamp · บทเรียน

ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD

จัดแพ็กเกจและกำหนดเวอร์ชันให้การนำไปใช้งาน Kubernetes ด้วยชาร์ต Helm สร้างแม่แบบการกำหนดค่าตามแต่ละสภาพแวดล้อม และทำให้การเผยแพร่ชาร์ตจาก GitHub Actions เป็นอัตโนมัติ

ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

ปัญหาไฟล์แมนนิเฟสต์จำนวนมาก

การปรับใช้กับ Kubernetes หมายถึงการเขียนไฟล์แมนนิเฟสต์ YAML จำนวนมาก ได้แก่ ออบเจ็กต์การปรับใช้ บริการ ConfigMaps และอินเกรส การคัดลอกไฟล์เหล่านี้แยกตามสภาพแวดล้อมจะจัดการได้ยากอย่างรวดเร็ว

Helm แก้ปัญหานี้ด้วยการจัดแพ็กเกจแมนนิเฟสต์เป็น ชาร์ต ที่นำกลับมาใช้ใหม่และมีเวอร์ชันกำกับ

Helm คืออะไร

Helm คือตัวจัดการแพ็กเกจสำหรับ Kubernetes ส่วน ชาร์ต คือชุดรวมแมนนิเฟสต์แม่แบบพร้อมค่าเริ่มต้น

  • Chart.yaml — ข้อมูลเมตาและเวอร์ชันของชาร์ต
  • values.yaml — การกำหนดค่าเริ่มต้น
  • templates/ — แม่แบบแมนนิเฟสต์

โครงสร้างชาร์ต

ไดเรกทอรีชาร์ตทั่วไปจะมีลักษณะดังนี้ Helm จะประมวลผลแม่แบบโดยใช้ค่าเหล่านี้ เพื่อสร้าง YAML ของ Kubernetes ฉบับสุดท้าย

mychart/
  Chart.yaml
  values.yaml
  templates/
    deployment.yaml
    service.yaml

การสร้างแม่แบบด้วยค่า

แม่แบบใช้ตัวยึดตำแหน่งที่ดึงค่าจาก values.yaml วิธีนี้ช่วยให้แม่แบบเดียวรองรับหลายสภาพแวดล้อม

# templates/deployment.yaml
spec:
  replicas: {{ .Values.replicaCount }}
  image: {{ .Values.image.repository }}:{{ .Values.image.tag }}

ค่าแยกตามสภาพแวดล้อม

เก็บไฟล์ค่าแยกตามแต่ละสภาพแวดล้อม และส่งไฟล์ที่ต้องการในเวลาติดตั้ง สภาพแวดล้อมทดสอบอาจทำงานด้วยเรพลิกา 1 รายการ ส่วนระบบจริงอาจใช้ 5 รายการ

helm upgrade --install myapp ./mychart \
  -f values-prod.yaml \
  --namespace production

การติดตั้งกับการอัปเกรด

คำสั่ง helm upgrade --install เป็นคำสั่งที่ทำซ้ำได้อย่างปลอดภัย โดยจะติดตั้งรีลีสหากยังไม่มี หรืออัปเกรดรีลีสหากมีอยู่แล้ว

คำสั่งเดียวนี้เหมาะอย่างยิ่งสำหรับ CI/CD เพราะใช้ได้ทั้งกับการปรับใช้ครั้งแรกและครั้งถัด ๆ ไป

การกำหนดแท็กอิมเมจใน CI

โดยทั่วไปใน CI คุณจะแทรกแท็กอิมเมจที่เพิ่งสร้างเสร็จ (มักเป็นค่า SHA ของคอมมิต) โดยใช้ --set

วิธีนี้เชื่อมรีลีสของ Kubernetes เข้ากับอาร์ติแฟกต์ที่ไปป์ไลน์ของคุณเพิ่งสร้างขึ้นอย่างเจาะจง

  - run: |
      helm upgrade --install myapp ./mychart \
        --set image.tag=${{ github.sha }}

การตรวจสอบชาร์ต

ก่อนการปรับใช้ ให้ตรวจสอบความถูกต้องของชาร์ตด้วย helm lint และประมวลผลแม่แบบด้วย helm template เพื่อค้นหาข้อผิดพลาดของ YAML หรือแม่แบบตั้งแต่เนิ่น ๆ

  - run: helm lint ./mychart
  - run: helm template myapp ./mychart -f values-prod.yaml

การย้อนกลับด้วย Helm

Helm ติดตามแต่ละรีลีสเป็น revision ที่มีหมายเลขกำกับ หากการนำระบบไปใช้งานเกิดข้อผิดพลาด คุณสามารถย้อนกลับได้ทันที

แนวทางนี้ทำงานร่วมกับแนวปฏิบัติด้านการกู้คืนจากภัยพิบัติได้เป็นอย่างดี เพราะรวดเร็วและให้ผลที่แน่นอน

helm history myapp
helm rollback myapp 3

การจัดแพ็กเกจและการเผยแพร่

สามารถจัดแพ็กเกจ Chart เป็นไฟล์เก็บถาวรที่มีเวอร์ชัน แล้วส่งไปยังคลัง Chart หรือรีจิสทรี OCI ได้ เช่นเดียวกับอิมเมจคอนเทนเนอร์

วิธีนี้ทำให้ทีมอื่นนำ Chart ของคุณไปใช้ตามเวอร์ชันได้

helm package ./mychart
helm push myapp-1.2.0.tgz oci://registry.example.com/charts

งานนำระบบ Helm ไปใช้งาน

เมื่อนำทุกอย่างมาประกอบกัน ให้ยืนยันตัวตนกับคลัสเตอร์ ตั้งค่า Helm แล้วจึงอัปเกรด แอ็กชัน setup-helm ของ Azure จะติดตั้ง CLI บนตัวรันเนอร์

  - uses: azure/setup-helm@v4
  - run: |
      helm upgrade --install myapp ./mychart \
        -f values-prod.yaml \
        --set image.tag=${{ github.sha }} \
        --wait

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจของคุณเกี่ยวกับ Helm ใน CI/CD

สรุปทบทวน

คุณได้เรียนรู้การนำแอป Kubernetes ไปใช้งานด้วย Helm

  • Chart จะจัดแพ็กเกจแม니เฟสต์ที่มีเทมเพลต พร้อมกับ values.yaml
  • ไฟล์ค่าของแต่ละสภาพแวดล้อมใช้กำหนดค่าระหว่างสภาพแวดล้อมทดสอบกับสภาพแวดล้อมจริง
  • helm upgrade --install คือคำสั่งนำระบบไปใช้งานใน CI แบบทำซ้ำได้โดยไม่ก่อให้เกิดผลซ้ำซ้อน
  • Revision ช่วยให้ ย้อนกลับ ได้ทันที และสามารถเผยแพร่ Chart ได้เช่นเดียวกับอิมเมจ

Helm เปลี่ยนแม니เฟสต์ดิบให้เป็นรีลีสที่มีเวอร์ชันและนำกลับมาใช้ซ้ำได้

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

บทเรียน “ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD”

จัดแพ็กเกจและกำหนดเวอร์ชันให้การนำไปใช้งาน Kubernetes ด้วยชาร์ต Helm สร้างแม่แบบการกำหนดค่าตามแต่ละสภาพแวดล้อม และทำให้การเผยแพร่ชาร์ตจาก GitHub Actions เป็นอัตโนมัติ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้างอิมเมจ Docker ด้วยแอ็กชัน
  2. การส่งอิมเมจไปยังรีจิสทรี
  3. การนำไปใช้บน Kubernetes ด้วยแอ็กชัน
  4. ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD
← กลับไปที่ DevOps Bootcamp