Autoscale
Tính năng Autoscale được bật mặc định khi tạo Kubernetes Cluster trong D-FKE.
Tính năng Autoscale của D-FKE được xây dựng dựa trên công cụ cluster-autoscaler của Kubernetes. Hệ thống tự động điều chỉnh số lượng worker node trong một cluster khi đáp ứng các điều kiện sau:
- Pod ở trạng thái pending do không đủ tài nguyên.
- Mức sử dụng tài nguyên (CPU và RAM) của các node trong cluster đã thấp hơn 50% trong một khoảng thời gian nhất định (mặc định 15 phút) và các pod trên những node đó có thể được chuyển sang node khác.
Tham khảo: https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler
Tính năng cluster-autoscaler được sử dụng kết hợp với HPA (HorizontalPodAutoscaler).
- Scale-up: HPA tự động thêm pod khi mức sử dụng tài nguyên vượt ngưỡng đã cấu hình. Khi các pod mới được tạo và Worker Node không có đủ tài nguyên để đáp ứng request của pod, cluster-autoscaler sẽ tự động thêm Worker Node để chứa các pod mới.
- Scale-down: HPA tự động giảm số lượng pod khi mức sử dụng tài nguyên thấp hơn ngưỡng đã cấu hình. Kết quả là mức sử dụng tài nguyên của node giảm và các node sẽ được tự động loại bỏ bởi cluster-autoscaler.
Tham khảo: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/
Các kịch bản sử dụng phổ biến:
- Cố định số lượng worker node: Đặt Min = Max với cùng một giá trị.
- Ngăn scale-down trên các node cụ thể: Các node có annotation sau sẽ không bị Cluster Autoscaler thu hẹp.
"cluster-autoscaler.kubernetes.io/scale-down-disabled": "true"
Lệnh để thêm annotation:
kubectl annotate node <node-name> cluster-autoscaler.kubernetes.io/scale-down-disabled=true