The documentation of MetalLB states that:
In layer 2 mode, all traffic for a service IP goes to one node.
To my understanding, this is mostly due to the fact that:
one node assumes the responsibility of advertising a service to the local network.
As mentioned in the rest of the said documentation, this behavior implies a severe limitation. The traffic bandwidth is limited to what can pass through the elected node. But is it due to ARP as it is claimed in the documentation?
A solution I could imagine to remove this limitation is to have one "speaker" per node. When a new set of pod and service is deployed, the speaker running on the node which runs the new node is in charge of the ARP announcement. This way, the inbound traffic always takes the optimal route. Is it technically doable?