-
Notifications
You must be signed in to change notification settings - Fork 558
Kubernetes Cluster Autoscaler (VMSS) addon #2637
Conversation
00d9e3c
to
88bf274
Compare
7f77e01
to
abd494d
Compare
@kkmsft who is working on Autoscaler for AKS RP. Can we align both work streams? |
Codecov Report
@@ Coverage Diff @@
## master #2637 +/- ##
=========================================
- Coverage 49.61% 49.51% -0.1%
=========================================
Files 91 91
Lines 13854 13939 +85
=========================================
+ Hits 6873 6902 +29
- Misses 6344 6394 +50
- Partials 637 643 +6
Continue to review full report at Codecov.
|
What would it take to extend this to support auto-scaling multiple agent pools? At the moment it only scales the first one, but the cluster-autoscaler supports multiple agent pools. |
@ewok2030 You can add more agent pools by adding
|
@ewok2030 like @feiskyer said, you can edit the yaml (in /etc/kubernetes/addons/ on the master) to include multiple agent pools, but that functionality isn't there in the add-on definition logic yet (it'll automatically include the primaryScaleSet which is the first agent pool). I have been thinking about adding some extra configuration options to include multiple agent pools. |
855bd92
to
adebbec
Compare
@jackfrancis ready for review when you get a chance |
@@ -104,8 +104,8 @@ const ( | |||
DefaultACIConnectorAddonName = "aci-connector" | |||
// DefaultDashboardAddonName is the name of the kubernetes-dashboard addon deployment | |||
DefaultDashboardAddonName = "kubernetes-dashboard" | |||
// DefaultACIConnectorImage defines the ACI Connector deployment version on Kubernetes Clusters | |||
DefaultACIConnectorImage = "virtual-kubelet:latest" |
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.
Did we want to delete this const?
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.
yea, this one is no longer used (since it moved to k8s_versions
), thought i would clean it up
pkg/acsengine/k8s_versions.go
Outdated
"dockerEngine": "1.13.*", | ||
"dashboard": "kubernetes-dashboard-amd64:v1.8.3", | ||
"exechealthz": "exechealthz-amd64:1.2", | ||
"addon-resizer": "addon-resizer:1.7", |
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.
I assume we're downgrading addon-resizer to 1.7 because 1.8.1 is not mutually compatible with cluster-autoscaler?
Can we be confident that we won't re-introduce this bug:
Which was fixed here:
(the addon-resizer manfest definition was changed with the above PR, not just the version; perhaps the changes in how addon-resizer was expressed is the important part and not the upgrade to 1.8.1?)
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.
didn't mean to downgrade addon-resizer, probably didn't notice when rebasing. reverted that change.
This looks great, couple questions. Let's add validation unit tests (see Thanks so much for this!! |
@jackfrancis thanks! added validation unit tests. should be good to review when you get a chance |
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.
lgtm pending E2E
How to change the mix/max after the cluster been created? |
At this time, it’ll have to be done in the same way a second agent pool may be added: by SSH’ing into each master node an editing the addon YAML. |
What this PR does / why we need it:
This PR adds Azure Virtual Machine Scale Set cluster autoscaler (https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler/cloudprovider/azure) as an add-on for acs-engine
It automatically pulls in and converts to base64 all required values for credentials (such as clientId, clientSecret, subscriptionId, tentantId, etc) and other required values (scale set name, resource group, etc) from the deployment.
User can override minNodes (default to 1), maxNodes (default to 5), image, limits, and requests.
Documentation: https://github.com/sozercan/acs-engine/blob/autoscaler-vmss/examples/addons/cluster-autoscaler/README.md
Special notes for your reviewer:
Merge after #2620
If applicable:
Release note: