Autoscaler: HPA & VPA are not compatible by design

Created on 26 Feb 2019  路  4Comments  路  Source: kubernetes/autoscaler

Objective:

  • Autoscale both vertically & horizontally to achieve the best resource utilization for kubernetes cluster by using HPA & VPA

Issue:

  • Default Scheduler uses "resource request" to determine which pod to be deployed on which node, however, hardcoded "resource request" value might be wrong. VPA is capable of changing the "resource request" dynamically so that each pods will be routed to a node which has more resources. However, HPA also uses "resource request" value to determine the scale up/down & it needs fixed value, there is a conflict between HPA v.s. VPA & Default Scheduler combination.

Proposed Solution

  • Current HPA users need "resource request" for HPA, by default, HPA should use "resource request", however, to support HPA + VPA, add an option to change the HPA base value from "resource request" to "resource limit"

Benefit:

  • User is able to reschedule over-utilized pods to other nodes using VPA & Default scheduler. When resource utilization is reached to maximum performance of the pod & there is no more performance gained by the single pod, HPA will deploy additional pod. Default scheduler uses current pod resource request (real time resource request by VPA) to accurately schedule additional pod to unutilized node, thus, we are able to achieve the maximum resource utilization automatically. Scheduler-v2.pptx

Most helpful comment

I used safe-scheduler instead : https://github.com/IBM/kube-safe-scheduler. It will monitor current resource util & create pod to proper node. I am not using VPA any more as it evicts pods every time & causes app downtime.

All 4 comments

I found another solution, closing this issue.

@mossuchida Do you mind sharing the solution.

I found another solution, closing this issue.

I'd love to know too!

I used safe-scheduler instead : https://github.com/IBM/kube-safe-scheduler. It will monitor current resource util & create pod to proper node. I am not using VPA any more as it evicts pods every time & causes app downtime.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mboersma picture mboersma  路  6Comments

clamoriniere picture clamoriniere  路  5Comments

hadifarnoud picture hadifarnoud  路  7Comments

benmoss picture benmoss  路  4Comments

tjliupeng picture tjliupeng  路  6Comments