Issues Migrating from MetalLB to Cilium as LoadBalancer

0
38
Asked By TechyWizard2023 On

Hey everyone! I'm diving into Cilium and ran into an issue while trying to switch from MetalLB to using Cilium as my LoadBalancer. I set up a `CiliumLoadBalancerIPPool` and a `CiliumL2AnnouncementPolicy`, and my Service is getting an IP from the pool. However, I can only access that Service from within my cluster's network (like `192.168.0.0/24`). When I try to reach it from a different network (like `192.168.1.0/24`), it doesn't work, despite having routing set up between those networks. Unlike with MetalLB, which worked seamlessly, I'm stuck here. Also, I'm curious about how others learn Cilium and which features you find most useful in production.

3 Answers

Answered By DevOpsDude22 On

What's the output when you run `kubectl get leases -A`? You should see entries for the LoadBalancer services you defined. If those are missing, there's likely something off with your L2 announcement specs. To note, Cilium uses gratuitous ARP for L2 announcements, which some network equipment doesn't support, unlike MetalLB.

Answered By CiliumGuru99 On

The issue with L2 announcements is that they rely on ARP. So, your hosts in the `192.168.1.0/24` network need to know where to direct ARP requests for the `192.168.0.0/24` range. You might want to check out a presentation I put together that goes into detail about how these announcements function, but make sure to translate it if needed. If you still have questions after that, feel free to ask!

Answered By NetworkNinja88 On

Check if you've got `strictARP: true` set in your kube-proxy configmap. Cilium and kube-proxy don’t always play nicely together.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.