#13894·k3s

Service LB lbpool feature where one node can be part of multiple pools

Author: gear54rusCreated Apr 4, 2026Updated Sep 21, 2026

Is your feature request related to a problem? Please describe. ServiceLB/KlipperLB lbpool feature works in a way where a node can only be part of one pool, because we store the pool name in label value and use same label key everywhere. I'd like it to be extended in a way that allows nodes to be part of multiple pools at once.

Describe the solution you'd like What if we use a new label structure where we add svccontroller.k3s.cattle.io/lbpool/<name>: "true" label to the node. We can then use nodeSelectorTerms with two expressions (instead of nodeSelector) to maintain backward compatibility with old labels and let the scheduler do its magic.

Describe alternatives you've considered The suggestion on klipper-lb repo: https://github.com/k3s-io/klipper-lb/issues/67 seems to propose JSON array to specify pools inside a single label. I think this API is less elegant and also harder to implement.

Additional context Would be willing to try and submit a PR if this gets approved.