Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Support scaling HPA to/from zero pods for object/external metrics #74526
What type of PR is this?
What this PR does / why we need it:
This technique is especially useful when workers request GPU resources and the amount of different idling worker types exceeds number of available GPUs.
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
Hi @DXist. Thanks for your PR.
I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with
Once the patch is verified, the new status will be reflected by the
I understand the commands that are listed here.
@DXist I am also working on this issue and I have discussed the below proposel in Sig weekly meeting, and as per discussion in meeting the @mwielgus will discuss this with networking team, and based on that we can modify the PR and I'll be happy to coordinate with you on this.
This PR handles more general case and is not specific to HTTP workload.
If an HTTP load balancer/Ingress could buffer requests and export a number of queued requests for given service as a custom metric then HPA can use this metric for scaling. I see that there could be some signaling about metric change or push based model of metric delivery to HPA to speed up the scaling process.
referenced this pull request
Feb 27, 2019
mwielgus left a comment
Couple of high-level items:
There are unittests that cover scaling up from zero pods and scaling down to zero for custom object and external metrics.
For end-to-end testing I
Only one metric value (worker utilization) was available when there were no pods.
Github collapsed the diff for this module. I've added extra condition to enable scaling when
No, I didn't. It seems to be a good protection from HPA misconfiguration.
A comment update should be near MinReplicas?
[APPROVALNOTIFIER] This PR is APPROVED
The full list of commands accepted by this bot can be found here.
The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing
this is close, but needs a couple tweaks to handle skew cases properly. left a description at https://github.com/kubernetes/kubernetes/pull/74526/files#r302972197