-
Notifications
You must be signed in to change notification settings - Fork 40k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Autoscaler implementation #9612
Conversation
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project, in which case you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed, please reply here (e.g.
|
Can one of the admins verify that this patch is reasonable to test? (reply "ok to test", or if you trust the user, reply "add to whitelist") If this message is too spammy, please complain to ixdy. |
Signed the CLA. |
We found a Contributor License Agreement for you (the sender of this pull request) and all commit authors, but as best as we can tell these commits were authored by someone else. If that's the case, please add them to this pull request and have them confirm that they're okay with these commits being contributed to Google. If we're mistaken and you did author these commits, just reply here to confirm. |
Confirmed. I am @pweil- and I endorse this PR (politician smile) |
(bump) + any way to check the failing builds? @smarterclayton FYI |
ok to test |
|
GCE e2e build/test passed for commit f726fc64c6ec57a81490315b6d44523885ecae7a. |
GCE e2e build/test passed for commit 5813ceb013c61f987bd97b071168e8c972d05535. |
🆘 can't see the |
See the shippable yaml file
|
GCE e2e build/test failed for commit 12d8f16186cef9fa26ef8cf0584d479dbfdd0c0a. |
GCE e2e build/test passed for commit c79a4cfaa1fff97ac9add2bb1a1e653d9c1cfe07. |
k - third time's a charm!! PTAL - thx. |
// AutoScaleThreshold is a behavior based on statistics used to drive the auto-scaler in scaling decisions. | ||
type AutoScaleThreshold struct { | ||
// Type is the type of threshold being used, intention or value. | ||
Type AutoScaleThresholdType `json:"type,omitempty" description:"auto-scale threshold type; intention or value based"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it wasn't clear to me how value-based works; intention-based is configured in Intentions field, but where is value-based configured?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question - don't think it was anywhere but am not sure if I have the right answer to that.
The types were as defined in the original autoscaler types PR ttps://github.com//pull/5492, and when I started to use them, found a couple of missing configuration pieces to evaluate the thresholds - the value and duration in particular, which I added to the AutoScaleIntentionThresholdConfig
struct. Given what the intention thresholds support now, the value based thresholds could simply be folded into the intention based ones (aka just need the intention based thresholds - value based becomes a subset).
Don't know the history/discussions leading to the initial autoscaler types PR, so maybe @pweil- or @smarterclayton can shed more light on that. @pweil- / @smarterclayton ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As the discussion progressed intention based threshold were the way everyone was leaning. I eventually removed the value based thresholds from the code (#5492 (comment)). The type is probably unnecessary at this point unless we intend to add value-based configs.
GCE e2e build/test failed for commit 988bda5333c3d3d3616d05ce1558cc0d67e0e7fa. |
Ok - this has been around for a while, so had to do some babysitting - rebased this to the latest code. Can't see the build errors - only see a Any comments on what else is needed here + can you please let me know the shippable errors. |
GCE e2e build/test passed for commit beb8d3414eb907ea2bf64332aea16780a9490f69. |
Unfortunately I don't think we're going to be able to give this attention until 1.0. |
@pmorie and I will do the bulk of the review for this, but we probably want On Jul 4, 2015, at 2:29 AM, David Oppenheimer notifications@github.com Unfortunately I don't think we're going to be able to give this attention — |
GCE e2e build/test passed for commit b4002170e34681968d829fc8bdf54887df480a5a. |
GCE e2e build/test passed for commit b4f91be18b033cd19961a6dc253e6afbfc678dd9. |
cc @davidopp |
As discussed offline, if there are others who are interested in picking up On Tue, Jul 28, 2015 at 7:08 AM, Brian Grant notifications@github.com
Clayton Coleman | Lead Engineer, OpenShift |
…l of Enabled field
* cleanup after code rebase: * add PrepareForCreate method to node and namespace strategies * fixes for updates to method signatures * remove unused imports * add the generated conversion functions for the autoscaler types * use new rest.StandardStorage for the registry storage * test fixes and added new tests * add duration and scale by fields * add autoscaler interfaces and default generic implementation * add scale reconciler * add autoscaler monitoring sources support * add autoscaler client methods + fake client support
* Refactor manager * Convert to using a work queue * Hook into kubernetes and controller manager code * Reorganize plugins * Copyright * Remove deprecated api code for merge/rebase w/ @pweil- changes * Some cleanup and renames * Remove merged labels * More refactoring * Add autoscaler registry pieces * Setup autoscale manager * Add and fix tests * Optimize policy assessment if there's no targets to operate on. * Add info log messages.
add a new strategy for updating autoscaler status.
interface, regenerate docs and swagger spec and fixup tests for new storage interface.
GCE e2e build/test passed for commit aba2814. |
The updated design of simplified pod autoscaler is described in #12087 (all the discussion should take place there). We are planning to implement it as a part of 1.1. |
@jszczepkowski yeah saw that afterwards. Rebased as it was outdated - was on the wait queue for a while now (almost a couple of months). Anyway that's a moot point now ... @davidopp want me to close this out? |
This is superseded by 12087, right? |
This is step 2 of the autoscaler implementation - building on the types defined by @pweil- in #5492
and the original autoscaler proposal from @smarterclayton at: #2863
To test, define a replication controller and an autoscaler configuration - example at: https://github.com/ramr/autoscaler-k8s-test/blob/master/test-as.json
and the replication controller gets scaled automatically to the min/max limits set in the autoscaler spec.
Or you can use the test repo at https://github.com/ramr/autoscaler-k8s-test
and the replicas for the sample replication controller
cluster/kubectl.sh get rc
, should scale upto a limit of 6 replicas.PTAL - Any comments/feedback greatly appreciated. Thx