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 · 7 comments

Comments

Projects
None yet
6 participants
@danderson
Member

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 from Document that metallb and kube-router are not compatible to Document which parts of MetalLB are compatible with kube-router Feb 21, 2018

@SEJeff

This comment has been minimized.

SEJeff commented Mar 15, 2018

When this is merged, it should work with ARP mode

@danderson danderson removed their assignment Apr 1, 2018

@danderson

This comment has been minimized.

Member

danderson commented Apr 19, 2018

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

This comment has been minimized.

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

This comment has been minimized.

Intellium commented Jul 6, 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.

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. :)

@ccatlett2000

This comment has been minimized.

ccatlett2000 commented Sep 7, 2018

@andrelop

This comment has been minimized.

andrelop commented Dec 12, 2018

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

This comment has been minimized.

Member

danderson commented Dec 12, 2018

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment