If one "thing" (Cilium) can give me local-node breakneck speed (via eBPF magic) and cross-cluster (v1.4) and node <-> node routing I would absolutely drop everything and switch to it (my deployment is very very small).
All that said, I'm currently very happy with kube-router[0], because it gave me all-in-one node & service/pod routing (as in, you can actually get rid of kube-proxy. Cilium is now way higher on my short list of things to check out now as well.
Thinking aloud, by "Service IP" routing do you mean that actual services can have external facing IPs? I had no idea kube-router supported that, maybe I'm on a version that's too old?
[EDIT] Looking back at the kube-router docs, I see no mention of what I was discussing above so I'm going to assume "Service IP" means the usual IPVS/LVS stuff that kube-router does. I find that feature doesn't really affect me directly as a cluster operator though... Though it's probably saving me some latency (I assume you can skip a DNS resolution or two?)
Compared to Cilium I would spontaneously say it's bpf and fqdn based network policies.
In case anyone is ignorant like me:
> Cilium is open source software for transparently providing and securing the network and API connectivity between application services deployed using Linux container management platforms like Kubernetes, Docker, and Mesos.
Cilium may happen to do some proxying and balancing but you dont do things like "add a backend to Cilium" -- you "add a backend" to Kubernetes, Cilium is handling your networking, so it sees that, and ensure your frontend (which is already deployed let's say) inside the same kubernetes cluster can speak to the backend when it reaches out for it.
HAProxy is a TCP-only reverse proxy and load balancer similar to NGINX.
Traefik is a reverse proxy and load balancer (currently HTTP only I believe) built relatively recently with modern features like a HTTP administration interface, OpenTracing compliant (IIRC) request tracing, let's encrypt for certs, and automatic polling of a container orchestration layer (if you have one) to populate backends/frontends.