I'm having some trouble with timeouts when trying to route to services using the Gateway API with Cilium. I've transitioned from using ingress-nginx to the Gateway API but am encountering issues when attempting to access assigned IP addresses from outside the cluster or service names from other pods—everything just times out. Here's the current setup: I'm running on RKE2 with kube-proxy disabled and externalTrafficPolicy set to local. My Gateway APIs version is v1.4.1, and I've confirmed that the gatewayclass, gateway, and httproute all show accepted=True without any major errors. A sample service I set up (whoami) works fine when accessed through ingress but not through the httproute. What do you think I might be missing?
3 Answers
Start troubleshooting your Gateway from inside the cluster first. Deploy a netshoot pod and try to curl the Kubernetes service name of your Cilium Gateway. This will help confirm if Cilium is functioning correctly at least within the cluster. Once you’ve established that, you can delve into the BGP or L2 routing from your local network.
Have you checked if there's a BGP capable router set up? Without that, the BGP advertisements won't be effective, leading to timeout issues since external IPs wouldn't have a route to your services. If you're really stuck, you could consider reverting to MetalLB or trying out Cilium L2 advertisements, especially if you don't need IPv6 support.
When testing from inside the cluster, it looks like everything's just hanging and timing out on your end. Getting a timeout doesn't help much with diagnosing—if this was Ingress nginx, you'd expect at least a 404 for unconfigured routes. But with the Gateway API, it's more ambiguous. Just to be thorough, double-check your configuration for the Gateway and HTTPRoute resources, and also ensure there’s no oversight in service exposure.

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