ลด cost บน Kubernetes Cluster ด้วย kube-downscaler

NC
ConvoLab
Published in
2 min readAug 23, 2019

วันนี้มาแนะนำ tool ทำ schedule เพื่อเปิด/ปิดการใช้งาน workload ที่ไม่จำเป็นต้องเปิดใช้งานตลอดบน cluster เช่น เปิดใช้เฉพาะ work hours เท่านั้น โดยใช้คู่กับ cluster autoscale ของ kubernetes จะช่วยลดค่าใช้จ่ายได้เยอะมากนั่นเอง

Prerequisite

Setup

โหลดและติดตั้ง deployment จาก kube-downscaler repository

git clone https://github.com/hjacobs/kube-downscaler.git
kubectl apply -f kube-downscaler/deploy/

Edit deployment เอา — dry-run ออกเพื่อใช้งาน downscale

kubectl edit deploy kube-downscaler

การตั้ง default schedule

ตั้งค่า DEFAULT_UPTIME หรือ DEFAULT_DOWNTIME ใน configMap ของ kube-downscaler โดยจะ apply กับทุก deployment ยกเว้นใน namespace kube-system

การตั้ง time format

<WEEKDAY-FROM>-<WEEKDAY-TO-INCLUSIVE> <HH>:<MM>-<HH>:<MM> <TIMEZONE>

kubectl edit configMap kube-downscaler

เรายังสามารถใช้ Annotation ตั้งค่า schedule ให้เฉพาะ deployment ที่เราต้องการได้ด้วย เช่น

kubectl annotate deploy <DEPLOYMENT> “downscaler/uptime=<TIME-FORMAT>”

หรือจะยกเว้นการ downscale ให้กับ deployment บางตัว เช่น

kubectl annotate deploy <DEPLOYMENT> “downscaler/exclude: true”

สามารถศึกษา option การใช้งานเพิ่มเติมได้ที่
https://github.com/hjacobs/kube-downscaler

--

--