One of the interesting things linkerd can do is specify load balancing weights. That is, send 1% of traffic to a new instance and slowly ramp it up. I see how to specify those weights as part of dtab entries. I’ve also found the WeightedAddress
class when writing a custom Namer
implementation.
What I don’t understand is how one sets these weights in the first place? Where do folks typically store the service instance weighting values? Using namerctl with namerd to dynamically update the dtab routes doesn’t feel like the right solution, as you’re bypassing the service discovery mechanism. We’re currently using the Zookeeper/Curator service discovery framework. Do other service discovery registries support the ability to specify service weightings?
Feels like I’m missing a big piece of the puzzle here.
Thanks!
David