เทมเพลตเป็นสิ่งที่ขาดไม่ได้สำหรับการทำงานอัตโนมัติที่ขับเคลื่อนด้วย GitOps

เผยแพร่แล้ว: 2022-05-27

สารบัญ

ระบบอัตโนมัติที่ขับเคลื่อนด้วย GitOps

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

แต่ต้องขอบคุณแนวทางการประกาศเกี่ยวกับโครงสร้างพื้นฐานของ Kubernets คุณสามารถกำหนดการเปลี่ยนแปลงที่แม่นยำในทุกระดับได้ Kubernetes ให้อำนาจคุณในการผสานรวมเครื่องมือต่างๆ เพื่ออำนวยความสะดวกในการวางแผน การปรับใช้ และการตรวจสอบคอนเทนเนอร์แบบอัตโนมัติ

หนึ่งในเครื่องมือดังกล่าวคือ Helm ซึ่งเป็นเฟรมเวิร์กระบบอัตโนมัติที่ใช้ CNCF ซึ่งได้รับความนิยมไม่เฉพาะในแวดวง Kubernetes เท่านั้น แต่ยังรวมถึงระบบนิเวศของ GitOps ด้วย ในโพสต์นี้ เราจะมาดูกันว่า Helm ช่วยให้แอปพลิเคชันระบบคลาวด์ทำงานอัตโนมัติผ่าน Kubernetes และ GitOps ได้อย่างไร

เฮลม์คืออะไร?

แม้จะอธิบายว่าเป็นผู้จัดการแพ็คเกจ แต่ Helm เป็นเครื่องมือที่ทรงพลังสำหรับการติดตั้ง ปรับใช้ อัปเกรด และจัดการแอปพลิเคชัน Kubernetes โดยอัตโนมัติ การจัดการ Kubernetes Manifesto เป็นงานที่มีความซับซ้อนมากขึ้นเรื่อยๆ ในทุกระบบ ไฟล์ YAML ที่ซ้ำกันหลายไฟล์และค่าฮาร์ดโค้ดจำเป็นสำหรับการเรียงลำดับเดียว Kubernetes ต้องการวิธีที่ดีกว่าในการจัดการไฟล์ YAML ผ่านรูปแบบบรรจุภัณฑ์ที่เรียบง่าย ซึ่งนำไปสู่แผนภูมิควบคุม อย่างไรก็ตาม จุดประสงค์ของชนเผ่าเฮลม์นั้นอยู่นอกเหนือแม่แบบ

ชาร์ต

แผนภูมิหางเสือเป็นหน่วยที่ใช้กับแอปพลิเคชัน Kubernetes ได้ แต่ละแผนภูมิสามารถมีไฟล์ ข้อมูลเมตา และโครงสร้างพื้นฐานของแอปพลิเคชัน แผนภูมิที่เขียนใน Go จะถูกจัดเก็บไว้ในไดเร็กทอรีเทมเพลตเฉพาะที่มีตัวแปร เวอร์ชัน และคำอธิบายที่เกี่ยวข้อง การจัดเก็บแผนภูมิเหล่านี้เป็นที่เก็บถาวรในที่เก็บ คุณสามารถแชร์แผนภูมิเหล่านี้ให้ทีมพัฒนาของคุณใช้ซ้ำได้

เมื่อติดตั้งสำเนาของแผนภูมิในคลัสเตอร์ Kubernetes แล้ว จะเรียกว่าเอาต์พุต รุ่นใหม่จะถูกสร้างขึ้นทุกครั้งที่มีการใช้แผนภูมิ ซึ่งสามารถเกิดขึ้นได้หลายครั้ง สิ่งพิมพ์ช่วยคุณตรวจสอบและติดตั้งแผนภูมิ

ด้านล่างนี้คือกฎสำคัญบางประการที่ควรทราบเมื่อทำงานกับ Helm

Chart.YAML: ไฟล์หลักที่เก็บคำอธิบายแผนภูมิของคุณ

Values.YAML: ไฟล์ที่มีค่าเริ่มต้นของแผนภูมิของคุณ

แผนภูมิ: ไดเร็กทอรีที่มีแผนภูมิย่อย

เทมเพลต: ไดเร็กทอรีแหล่งที่มาของ Kubernetes กำหนดเป็นเทมเพลต

แม่แบบ

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

ทำไมต้องเฮล์ม?

Helm ช่วยเพิ่มมูลค่าให้กับสภาพแวดล้อมในการส่งมอบอย่างต่อเนื่อง เนื่องจากมีประโยชน์ดังต่อไปนี้

ปรับปรุงประสิทธิภาพการผลิต:

Helm (พร้อมกับเครื่องมือจัดเรียงอื่นๆ เช่น Flux) ช่วยให้คุณจัดเรียงซอฟต์แวร์ได้ด้วยปุ่มเดียวหรือคำสั่งเดียว ซึ่งจะทำให้ทีมของคุณโฟกัสไปที่การพัฒนาซอฟต์แวร์เท่านั้น

ทำให้กระบวนการง่ายขึ้น:

แนวคิดของแผนภูมิช่วยให้คุณสามารถคัดลอกแผนภูมิเดียวกันทั่วทั้งไปป์ไลน์ – การพัฒนา การทดสอบ และการผลิต – หรือข้ามเวิร์กโฟลว์ของทีมต่างๆ ซึ่งช่วยลดปัญหาได้อย่างมาก

การวัด:

แผนภูมิได้รับการออกแบบมาเพื่อให้สอดคล้องกับสถาปัตยกรรมคลัสเตอร์ Kubernetes ซึ่งอำนวยความสะดวกในการขยายขนาด

ถอนง่าย:

Helm จัดการรุ่นทั้งหมด ทำให้ง่ายต่อการรับการเปลี่ยนแปลงเมื่อเกิดปัญหา

GitOps ใช้ประโยชน์จากทั้ง Helm & Flux

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

Flux เป็นโซลูชันฟิลเลอร์ที่ยอดเยี่ยมสำหรับ Helm เนื่องจากทำหน้าที่เป็นสะพานเชื่อมระหว่าง Helm และที่เก็บ Git ที่สำคัญทั้งหมด ซึ่งกำหนดคลัสเตอร์ Kubernetes ทั้งหมดและข้อกำหนดเฉพาะของยูทิลิตี้

Flux เป็นโซลูชันการปรับใช้อัตโนมัติตามโมเดล GitOps ซึ่งทำให้ Git เป็นจุดเริ่มต้นและแหล่งที่มาที่แท้จริงของการเปลี่ยนแปลงทั้งหมด Flux ช่วยให้คุณรักษาความสอดคล้องระหว่างที่เก็บโค้ดและคลัสเตอร์ Kubernetes และทำการจัดเรียงอัตโนมัติเมื่อมีการแนะนำการเปลี่ยนแปลงโค้ด

กล่าวโดยย่อ Flux Helm เผยแพร่แผนภูมิโดยอัตโนมัติโดยการซิงโครไนซ์แผนภูมิจาก Git ไปยังคลัสเตอร์ Kubernetes

Flux ทำงานร่วมกับ Helm ได้อย่างไร?

ในการใช้ Flux เป็นโอเปอเรเตอร์ GitOps คุณต้องบันทึกแผนภูมิ Helm ทั้งหมดพร้อมกับไฟล์ YAML และทรัพยากรที่กำหนดเองของ Kubernetes ในที่เก็บ Git นอกจากนี้ คุณใส่อิมเมจที่ไม่เปลี่ยนแปลงของแหล่งที่มาเหล่านี้ในรีจิสตรีคอนเทนเนอร์

เมื่อคุณได้ทำการเปลี่ยนแปลงกับ Git ด้วยคำขอ 'ดึง' แล้ว Flux จะตรวจสอบที่เก็บของคุณและจัดเตรียมทรัพยากรที่จำเป็น จากนั้นการเปลี่ยนแปลงจะรวมเข้ากับคลัสเตอร์การผลิต แน่นอนว่าสิ่งนี้ช่วยลดความซับซ้อนของกระบวนการ และคุณสามารถทำสิ่งต่างๆ ได้มากขึ้น เช่น การทดสอบการสูบบุหรี่หรือการอนุมัติการเปลี่ยนแปลงเฉพาะของ SRE แต่ตอนนี้ มาทำให้มันเรียบง่ายกัน

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานร่วมกันของ Flux 2 และ Helm เพื่อเพิ่มความเร็วและความน่าเชื่อถือในขณะที่ลดเวลาที่ไม่ได้ใช้งาน ให้ดูการสนทนาบน YouTube โดย Scott Rigby

บทสรุป

Helm ช่วยลดความยากในการเรียกใช้ Kubernetes ได้อย่างมาก ช่วยเพิ่มมูลค่าให้กับไปป์ไลน์ GitOps ด้วยแนวคิดของแผนภูมิหรือเทมเพลต ที่กล่าวว่า มีข้อกำหนดอื่นๆ นอกเหนือจากการสร้างเทมเพลต กล่าวคือ การทำให้ใช้งานได้อัตโนมัติแบบ end-to-end นี่คือจุดที่จำเป็นต้องใช้เครื่องมืออย่าง Flux (หรือ Weave GitOps ที่สร้างไว้ใน Flux) เพื่อใช้หางเสือ นอกจากนี้ โซลูชันที่เหมือน Magalix ช่วยให้มั่นใจได้ว่า Helm ที่วางจำหน่ายนั้นเข้ากันได้และปลอดภัย

Weave KitApps เป็นโซลูชันการจัดส่งแบบต่อเนื่องที่ช่วยให้คุณจัดการ Kubernetes ได้ในระดับหนึ่ง ซึ่งช่วยให้บริษัทต่างๆ ปรับใช้และใช้งาน GitOps ได้ง่าย Weave GitOps ช่วยลดความซับซ้อนของคลัสเตอร์การทำงานด้วยคำสั่งเช่น 'gitops install' เพื่อเปิดใช้งาน GitOps และ 'gitops เพิ่มแอป' เพื่อเพิ่มลงในแอปพลิเคชันของคุณ คำสั่งเหล่านี้จะสรุปงานที่ซับซ้อนที่เกี่ยวข้องซึ่งเกี่ยวข้องกับการทำให้ใช้งานได้อัตโนมัติ Weave GitOps รวบรวมไปป์ไลน์ GitOps ทั้งหมด รวมถึง Helm, Flux, Magalix และอื่นๆ เพื่อให้คุณสามารถเริ่มต้นใช้งาน GitOps โดยไม่ต้องเสียเวลาใดๆ

วิธีการเป็นผู้ขายในแอมะซอนแบบง่ายๆ

การตลาดดิจิทัลเพื่อการจัดเลี้ยง