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
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.
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!
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
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically