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

Document which parts of MetalLB are compatible with kube-router #160

Open
danderson opened this issue Feb 7, 2018 · 8 comments
Open

Document which parts of MetalLB are compatible with kube-router #160

danderson opened this issue Feb 7, 2018 · 8 comments

Comments

@danderson
Copy link
Contributor

danderson commented Feb 7, 2018

kube-router replaces most networking things in Kubernetes with a single system. It doesn't yet fully implement what MetalLB does, but it might at some point.

For now, we should document that kube-router and MetalLB are not compatible, because kube-router doesn't implement the datapath forwarding for LoadBalancer IPs. Once kube-router has that feature, we can document that it's compatible if you use ARP mode, or if you use BGP mode and are okay with the standard caveat that you must peer with different routers than kube-router.

@danderson danderson self-assigned this Feb 7, 2018
@danderson danderson changed the title Document that metallb and kube-router are not compatible Document which parts of MetalLB are compatible with kube-router Feb 21, 2018
@SEJeff
Copy link

SEJeff commented Mar 15, 2018

When this is merged, it should work with ARP mode

@danderson danderson removed their assignment Apr 1, 2018
@danderson
Copy link
Contributor Author

Currently documented that kube-router is not compatible in the network addon compat list. However, 0.2.0 is going to be released very soon with support for LoadBalancer IP routing. I'm keeping this bug open as a reminder to update the compatibility list when it's released.

@uablrek
Copy link
Contributor

uablrek commented Apr 26, 2018

I am running kube-router v0.2.0-beta.3 (built from source) and have tested with metallb v0.6.1 (also built from source).

I am simply not installing the metallb "speaker" at all and specify '--advertise-loadbalancer-ip=true' to kube-router. The loadBalancerIP is advertised ok by the kube-router.

I have just tested the basic function. If you have any specific test-cases I will help with testing if I can.

@Intellium
Copy link

I am running kube-router v0.2.0-beta.3 (built from source) and have tested with metallb v0.6.1 (also built from source).
I am simply not installing the metallb "speaker" at all and specify '--advertise-loadbalancer-ip=true' to kube-router. The loadBalancerIP is advertised ok by the kube-router.
I have just tested the basic function. If you have any specific test-cases I will help with testing if I can.

I just set up a cluster with kube-router v0.2.0-beta.7 and MetalLB v0.6.2, and removing the speaker component seems to work fine. It allows me to have kube-router peer with my BGP router and MetalLB to still do it's job, as the LoadBalancerIP's are advertised by kube-router. :)

@ConnorJC3
Copy link

@danderson 0.2.0 has been released by the way (https://github.com/cloudnativelabs/kube-router/releases/tag/v0.2.0)

@andrelop-zz
Copy link

So, as kube-router is now on 0.2.3, should this bug be closed and documentation on https://metallb.universe.tf/installation/network-addons/ be updated to reflect that kube-router and MetalLB are compatible ?

Sorry, I would like to understand what's the current status as we would like to deploy a k8s cluster, we need to use MetalLB and we would like to use kube-router instead of kube-proxy.

Is there any documentation (maybe should be part of the site update) saying how one should remove the speaker component if this is really all that needs to be done in order to get it working ?

Regards,

@danderson
Copy link
Contributor Author

We still need documentation for how to integrate with kube-router, similar to the existing docs for Calico and Romana. But yes, basically the integration takes 2 shapes:

  • If you're not using external BGP peering in kube-router, I think you can just use MetalLB with no changes (not sure, needs confirmation).
  • If you use external BGP peering, you need an extra flag on kube-router to announce LB services, and then you can remove the speaker daemonset and associated resources (service account, role bindings).

The documentation also needs to document the limitations of this integration: most of MetalLB's configuration becomes a no-op, you can't configure any BGP attributes or anything other than "here's a bunch of IPs". Additionally any new features I add in future (e.g. health probing matrix that influences the announcements being made) just won't work with kube-router. IOW, you get kube-router's features, not MetalLB's.

@BloodyIron
Copy link

So can we get documentation for Kube-Router please? I particularly care about Layer2 ARP scenario, and not BGP scenario.

fedepaol pushed a commit to fedepaol/metallb that referenced this issue Jan 18, 2024
…nshift-4.16-ose-metallb

OCPBUGS-24782: Updating ose-metallb-container image to be consistent with ART
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants