-
Notifications
You must be signed in to change notification settings - Fork 28
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
Exclude nodes from external load balancers in Kubernetes 1.19 #72
Exclude nodes from external load balancers in Kubernetes 1.19 #72
Conversation
CLA assistant was confusing, "Sign in" apparently means you sign the CLA immediately. I did not mean to sign it yet, since I believe I need to have it signed by my workplace, so please hold off on this for now. |
Thanks @sarahhodne I will remove the CLA assistant from this repo (I guess we left it) |
Hey @sarahhodne looks like you may need to recreate this PR since it's out-of-date with base (not sure why it's not allowing a rebase on the PR). We'd ideally like to merge this soon, let me know if you can use the DCO instead of CLA |
I'm just checking with legal at $work regarding the DCO, I think that should be fine but I just want their sign-off first. Once I have that, I'll rebase or recreate this PR with the sign-off in the commit. |
OK, sounds good, thanks! |
Starting in Kubernetes 1.19, unschedulable nodes were included in load balancers again (see kubernetes/kubernetes#90823), which causes a conflict between the cloud controller and lifecycle-manager, where lifecycle-manager attempts to remove the instance from the load balancer, but then the cloud controller attempts to re-add it. Kubernetes 1.19 also moved the ServiceNodeExclusion feature gate to beta support, and defaults it to enabled, so you can set the node.kubernetes.io/exclude-from-external-load-balancers label on the node to have the node be excluded. An older version of this feature used the alpha.service-controller.kubernetes.io/exclude-balancer, but this label is removed in Kubernetes 1.19. This commit sets the new node.kubernetes.io/exclude-from-external-load-balancers label in addition to the older alpha label so lifecycle-manager continues to work on both old and new clusters. Signed-off-by: Sarah Hodne <sarah@circleci.com>
b82c3ef
to
a994368
Compare
@eytan-avisror Added the DCO signoff to my commit and rebased against 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.
👍🏻
Codecov Report
@@ Coverage Diff @@
## master #72 +/- ##
==========================================
- Coverage 69.81% 69.69% -0.12%
==========================================
Files 12 12
Lines 911 914 +3
==========================================
+ Hits 636 637 +1
- Misses 215 216 +1
- Partials 60 61 +1
Continue to review full report at Codecov.
|
Starting in Kubernetes 1.19, unschedulable nodes were included in load balancers again (see kubernetes/kubernetes#90823), which causes a conflict between the cloud controller and lifecycle-manager, where lifecycle-manager attempts to remove the instance from the load balancer, but then the cloud controller attempts to re-add it.
Kubernetes 1.19 also moved the
ServiceNodeExclusion
feature gate to beta support, and defaults it to enabled, so you can set thenode.kubernetes.io/exclude-from-external-load-balancers
label on the node to have the node be excluded. An older version of this feature used thealpha.service-controller.kubernetes.io/exclude-balancer
, but this label is removed in Kubernetes 1.19.This commit sets the new
node.kubernetes.io/exclude-from-external-load-balancers
label in addition to the older alpha label so lifecycle-manager continues to work on both old and new clusters.