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

Node preferences/priorities for loadbalancer services #814

Open
d-uzlov opened this issue Apr 14, 2024 · 0 comments
Open

Node preferences/priorities for loadbalancer services #814

d-uzlov opened this issue Apr 14, 2024 · 0 comments

Comments

@d-uzlov
Copy link
Contributor

d-uzlov commented Apr 14, 2024

Is your feature request related to a problem? Please describe.

Nodes in my cluster have different network connection. Some nodes are connected to LAN via fast connection but some nodes use slow connection.
I'm using ARP mode, so only one node can announce an address.
When using kube-vip it often happens that nodes with slow connection capture the loadbalancer lease.
I would prefer to set some preferences or priorities, so that loadbalancer addresses are announced from nodes with faster internet connection when possible.
It seems like currently kube-vip treats all nodes the same, and the node to advertise loadbalancer IPs is chosen randomly.

Describe the solution you'd like

Per-node option to lower probability that this node will capture loadbalancer service lease.
The node with lowered priority should announce services when and only when other nodes aren't available [for this service].

Maybe it could be possible to add a delay before kube-vip attempts to capture service lease, which is set via node annotations.
High priority nodes could use zero delay, so that they capture the lease immediately, while low priority nodes could add, for example, 50 ms delay, so that it will [almost] never be the first to capture the lease.

Describe alternatives you've considered

  1. Use service election + externalTrafficPolicy: Local. Issues: some services are deployed as a daemon set, so local traffic policy doesn't prevent kube-vip from using slow nodes.
  2. Disable service election and remove kube-vip from nodes with slow network. Issues: externalTrafficPolicy: Local breaks
  3. Make network uniform across all nodes. Issues: not possible in my setup :-)
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

No branches or pull requests

1 participant