-
Notifications
You must be signed in to change notification settings - Fork 47
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
Cluster migration causes LB issues #445
Comments
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
/remove-lifecycle rotten |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle rotten |
There is a bug in capdo that only appears once a cluster has been migrated from one capi cluster to another.
capdo sets tags on the control plane nodes and the cloud loadbalancer to designate the nodes as backends to the LB.
See code here:
cluster-api-provider-digitalocean/cloud/services/networking/loadbalancers.go
Line 68 in 58a45f1
The problematic part of this is the
UID
of the cluster object as part of the tag.Even though it's a nice unique source, it's immutable and generated by the kube apiserver.
This is not an issue as long as the cluster is always managed by the same capi cluster.
As soon as the cluster is migrated to another capi cluster this
UID
changes to a newUID
created by the new capi cluster.This will work at first since all the capi and capdo object are just copied over and handed off.
However as soon as the first control plane node is replaced, the new one comes up with the new tag which then doesn't match what is set on the cloud loadbalancer.
This results in traffic not arriving at the backend as they're no longer seen as LB target droplets.
Possible backwards compatible way to solve this:
Introduce a verification to check if the LB tag and droplet tag
UID
part is still equal to the clusterUID
. If not, update the tags.This comes with side-effects and may be non-graceful if there isn't already a new node with the new tags.
We could do the new droplet first and reconcile with a 2nd iteration to do the LB in order to avoid this.
The text was updated successfully, but these errors were encountered: