I am still learning kubernetes and I stumbled over the objects Ingress
and IngressRoute
. What is the different between these two objects? Did IngressRoute
replace the old Ingress
? I am running a Kubernetes Cluster V1.17
with Traefik 2.1
. My IngressRoute
works fine but I also found blogs explaining how to define an ingress.
Ingress is a shared abstraction that can be implemented by many providers (Nginx, ALBs, Traefik, HAProxy, etc). It is specifically an abstraction over a fairly simple HTTP reverse proxy that can do routing based on hostnames and path prefixes. Because it has to be a shared thing, that means it's been awkward to handle configuration of provider-specific settings. Some teams on the provider side have decided the benefits of a shared abstraction are not worth the complexities of implementation and have made their own things, so far Contour and Traefik have both named them IngressRoute but there is no connection other than similar naming.
Contour handled this fairly well and allowed the two systems to coexist, the Traefik team disregarded our warnings and basically nerfed Ingress to vanilla configs only because they don't see any benefit from supporting it. Can you tell I'm salty about this? Because I definitely am.
Basically Ingress is the official thing but it's imperfect, some people are trying to make a new, better thing but it's not going well.