-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
README: Add note about cluster-autoscaler not supporting multiple AZs #647
README: Add note about cluster-autoscaler not supporting multiple AZs #647
Conversation
This is often said but not entirely true. We use The mechanism/'issue' is just as explained. The Because overall our ASGs and workloads are very AZ-balanced, even our soft Pod anti-affinity is almost always satisfied. If your workloads are all single-AZ PVCs and hard anti-affinity requirements (e.g. etcd or other quorum hosting), then the advice to have single AZ node pools is of course completely valid. |
@mgalgs Hey! Thanks for your contribution. Yep, I believe that @whereisaaron's explanation is valid, too. You may already have read it, but for more context, I'm sharing the original discussion regarding the gotcha of CA: kubernetes-retired/contrib#1552 (comment) Maybe we'd better add a dedicated section in the README for this? I'm not a good writer but I'd propose something like the below as a foundation: Ensure that you have a separate nodegroup per availability zone when your workload is zone-aware! To create separate nodegroup per AZ, just replicate your BEFORE: nodeGroups:
- name: ng1-public
instanceType: m5.xlarge
# availabilityZones: ["eu-west-2a", "eu-west-2b"] AFTER:
|
Yes, it sounds like it should be up to the user whether to use a single AZ or not, we should just make a note of how to do it, in case they think they must. |
617ce43
to
e9c5a9e
Compare
Thanks for the feedback! I totally agree that we should inform the user about the constraints and let them make a decision. I've revised my PR based on @mumoshu's draft. |
e9c5a9e
to
2e3e607
Compare
Cheers @mglags. Suggestions and explanation:
There is no need to do this. If your workload is not AZ-specific, then by definition is doesn't mind being re-balanced. This setting would be a work-around if have (unbalanced) AZ-specific requests that drive unbalanced ASG's and you don't want a re-balance undoing that. But that case you should be using per-AZ ASGs anyway, as your other criteria recommend.
'Soft' affinity requirements that use
You can certainly zero to and from zero node with a multi-AZ ASG - on AWS at least. This is because you can add the labels needed as node/affinity selectors as AWS tags on the ASG. The |
2e3e607
to
df9a1d0
Compare
@whereisaaron thanks for the feedback, I've incorporated your suggestions.
Got it. I was pretty much blindly transcribing the comments I got from a CA contributor (here), but that makes sense. |
Yep, I read it @mgalgs. I think that is sensible advice for how you might possibly be able to get it working if you do have AZ-specific workloads/resources. But I'd say don't even try that, just have per-AZ ASGs in that situation. |
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!
Thanks a lot @mgalgs for contributing this, and thanks @whereisaaron and @mumoshu for the review! |
Feature: Add ability to customize node daemonset nodeselector
Description
As discussed on slack,
cluster-autoscaler
doesn't support ASGs which span multiple AZs. Made a few clarifying notes in the README to that effect.Checklist
README.md
, andexamples
directory)humans.txt
file