Skip to content
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

[WIP][DO NOT MERGE] Proposal: Auto-scaling #546

Closed
wants to merge 8 commits into from

Conversation

pweil-
Copy link
Contributor

@pweil- pweil- commented Dec 8, 2014

Auto-scaling is a feature that allows users to increase capacity as needed by controlling the number of replicas deployed within the system based on request statistics. Auto-scaling is bidirectional, it will scale up to a specified limit as requests increase and scale down to minimal capacity as the requests decrease.

https://github.com/pweil-/origin/blob/035e0351a838a6ec6dcd65cc1977c85fca98ae5f/docs/autoscaling.md

@pweil-
Copy link
Contributor Author

pweil- commented Dec 8, 2014

/cc @rajatchopra @abhgupta @ironcladlou @pmorie @smarterclayton @bparees @mfojtik @akram

Looking for feedback. I would like to integrate as much as possible with the idling discussions going on as well.

@smarterclayton
Copy link
Contributor

You should reference the appropriate kube issues: kubernetes/kubernetes#1629 and some of the deep links

Data used for auto scaling is based upon routes and the requests for those routes. The auto-scaler cares about the following
data points:

1. network statistics (Requests Per Second, Sessions Per Second, Bytes In, Bytes Out, CPU Usage, Avg Request Duration)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There will be other statistics types potentially - anticipated load, historical data, etc. Reference those as other types of input


### Auto-Scaling Configuration

Auto-scaling config parameters will be added to the `ReplicationController`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upstream has already stated this won't happen - this config needs to be part of either annotations, or in a separate resource you create "AutoScaleController". That's part of the reason why this proposal should be targeted at upstream, because they are likely to have very specific opinions about some of these constructs.

@pweil-
Copy link
Contributor Author

pweil- commented Dec 8, 2014

@smarterclayton Does it make sense to break this up into two PRs: one for auto-scaling that needs to be created on the existing issue (kubernetes/kubernetes#1629) and one for how it integrates with OpenShift routers (prior to routers/routes moving upstream)?


Auto-scaling is a feature that allows users to increase capacity as needed by controlling the number of replicas deployed
within the system based on request statistics. Auto-scaling is bidirectional, it will scale up to a specified limit as
requests increase and scale down to minimal capacity as the requests decrease.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to spend more time talking about what the goals of this proposal are and reference use cases.

@smarterclayton
Copy link
Contributor

Yes - in the upstream describe routers and the Kube proxy as example sources of qps info, with the autoscalers using that to take action. Give the routers as an example and then describe more in the OpenShift issue.

On Dec 8, 2014, at 5:19 PM, Paul notifications@github.com wrote:

@smarterclayton Does it make sense to break this up into two PRs: one for auto-scaling that needs to be created on the existing issue (kubernetes/kubernetes#1629) and one for how it integrates with OpenShift routers (prior to routers/routes moving upstream)?


Reply to this email directly or view it on GitHub.

@pweil-
Copy link
Contributor Author

pweil- commented Dec 8, 2014

Ok, thanks for the guidance.

@pweil-
Copy link
Contributor Author

pweil- commented Dec 9, 2014

@smarterclayton This PR has been updated with a more Kube specific version of the proposal. If this passes initial muster then I will add it to the proposal you linked previously for open comments.

@@ -0,0 +1,201 @@
## Abstract
Auto-scaling is a data-driven feature that allows users to increase or decrease capacity as needed by controlling the number of replicas deployed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-scaling of pods.

Within Kubernetes a [kube proxy](https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/services.md#ips-and-portals)
running on each node directs service requests to the underlying implementation.

External to the Kubernetes core infrastructure (but still within the Kubernetes ecosystem) lies the OpenShift routing layer.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This reads weird. Just say "while the proxy provides internal inter pod connections, there will be L3 and L7 proxies and load balancers that manage traffic to backends. OpenShift, for instance, adds a "route" resource for defining external to internal traffic flow. The "routers" are HAProxy or Apache load balancers that aggregate many different services and pods and can serve as a data source for the number of backends."

@pweil-
Copy link
Contributor Author

pweil- commented Dec 10, 2014

@rajatchopra @abhgupta @ironcladlou @pmorie @smarterclayton @bparees @mfojtik @akram - ready for another round of feedback based on the changes already made.

If everyone is comfortable with what is currently documented then I'll close this and move to an upstream issue.

@smarterclayton
Copy link
Contributor

Excellent - reads great. When you submit upstream be sure to make the pull to the docs/proposals dir

@pweil-
Copy link
Contributor Author

pweil- commented Dec 11, 2014

Closing in favor of upstream PR kubernetes/kubernetes#2863

@pweil- pweil- closed this Dec 11, 2014
jpeeler pushed a commit to jpeeler/origin that referenced this pull request Feb 1, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants