ชาร์ต 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้างอิมเมจ Docker ด้วยแอ็กชัน
- การส่งอิมเมจไปยังรีจิสทรี
- การนำไปใช้บน Kubernetes ด้วยแอ็กชัน
- ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD