ข้ามไปยังเนื้อหา

บล็อก

หยุดจ่ายเงินสำหรับ CI ที่ไม่ได้ใช้งาน: GitLab Runners บน Kubernetes

ขยาย CI ไปรองรับยอดการใช้งานในวันจันทร์ จากนั้นลดความจุลงในช่วงกลางคืนและวันหยุดสุดสัปดาห์ — คู่มือห้านาทีพร้อมวิดีโอสาธิตทั้งสองแบบ XTAG0X XPR0X

  • Balinder Walia
  • อ่าน 1 นาที
  • Updated

ทีมงานส่วนใหญ่จ่ายค่า Continuous Integration เหมือนกับว่าทุกคืนและวันหยุดสุดสัปดาห์ยังคงเป็นเช้าวันจันทร์GitLab Runners บน Kubernetesพลิกโมเดลดังกล่าว: ขยายความสามารถเมื่อ pipelines เข้ามา แล้วลดทอนลงเมื่อสำนักงานเงียบสงบ อ่านการเจาะลึกทางเทคนิคสำหรับ Helm ค่าการตั้งค่า executor และโมเดลต้นทุน

GitLab Runners on Kubernetes — scale up by day, down at night

สรุปสั้นๆจัดเตรียมทรัพยากรสำหรับช่วงสูงสุด และลดทอนทรัพยากรสำหรับช่วงต่ำ Job pods แบบชั่วคราวจะคืน CPU, RAM และพื้นที่จัดเก็บเมื่อความต้องการลดลง — โดยเฉพาะในคืนและวันหยุดสุดสัปดาห์ — เพื่อให้ฟาร์มในวันจันทร์ไม่ได้กำหนดบิลของวันเสาร์

ดูวิดีโอ

1. Runners & pipelines— autoscaling GitLab Runner workloads บน Kubernetes

youtu.be/vURXfbvWK_0

2. GitLab Server บน HA Kubernetes— ติดตั้งด้วย Operator ในไม่กี่นาที

youtu.be/fu82hENYNEs· เอกสาร:GitLab Operator

นิสัยที่มีค่าใช้จ่ายสูง

  • ช่วงกลางวัน:merge requests และ tests ทำให้ความต้องการพุ่งสูงขึ้น
  • คืน:กิจกรรมลดลง; VMs แบบคงที่ยังคงเผา CPU และ RAM
  • สุดสัปดาห์:มักจะใกล้ idle — แต่ดิสก์และโหนดอาจยังคงถูกเรียกเก็บเงิน

คุณไม่ได้จ่ายสำหรับการสร้างงานที่ทำเสร็จแล้ว คุณจ่ายสำหรับความสามารถที่มีอยู่ ไม่ว่าใครจะใช้งานหรือไม่ก็ตาม

ภาพที่เรียบง่ายกว่า

GitLab'sRunnerดำเนินการงานใน pipeline.Kubernetesสามารถสร้างผู้ปฏิบัติงานเหล่านั้นเป็น pods ที่มีอายุสั้นและลบพวกมันเมื่องานเสร็จสิ้น ที่ระดับ hyperscale แนวคิดเดียวกันนี้ใช้กับ nodes: มากขึ้นเมื่อคิวลึก; น้อยลง — โดยนัยคือเกือบไม่มีเลย — ตอนกลางคืนและวันหยุดสุดสัปดาห์

สถานที่ที่การประหยัดต้นทุนมหาศาลเกิดขึ้น

  1. ขยายขนาดขึ้นเมื่อผู้คน (หรือบอท) ทำงาน — pods งานแบบขนานจนถึงขีดจำกัด concurrency และ cluster ของคุณ
  2. ขยายขนาดลงอย่างหนักเมื่อความต้องการหายไป — pods หายไป; ด้วย cluster autoscaling, nodes ที่เป็นว่างจะออกจาก pool
  3. หยุดการสูญเสีย CPU, RAM และพื้นที่จัดเก็บบน fleet ของ runner ที่ทำงานตลอด 24 ชั่วโมงในช่วงเวลาเงียบสงบ
  4. จ่ายตามผลลัพธ์ ไม่ใช่เฟอร์นิเจอร์— รักษา GitLab และผู้จัดการ runner แบบบางไว้; ให้ฟาร์มระเหยหายไปเมื่อว่าง

การประหยัดมหาศาลปรากฏขึ้นเมื่อยอดสูงสุดของวันจันทร์不再กำหนดบิลของวันอังคารตอน 3 โมงเช้า — และเมื่อความเงียบของวันเสาร์ในที่สุดก็ดูเงียบบนใบแจ้งหนี้

เอกสารทางการ

อ่านถัดไป:บทความทางเทคนิคhyperscaleครอบคลุมหัวข้อ Operator vs Helm tracks, concurrency, DinD, observability และ FinOps checklist คำแนะนำในการสร้างคอร์ส:gitlab-runners-k3s-hyperscale-course.prompt.mdใน repo ของเว็บไซต์ TenthMatrix (แทนที่ลิงก์ devops.git ที่เลิกใช้งานแล้ว)

เผยแพร่โดยTenthMatrix.