Ingress vs Gateway API
The same carlo-nginx pod in namespace carlo on dev-01, reachable through two different entry points.
nginx-ingress.carlo.pub.dev-01.kvant.cloud
Ingress + ingress-nginx
RetiredIngress API frozenTLS termination, host/path match
carlo-nginx + annotations → controller renders nginx.conf and reloads (same pod)The original Kubernetes way to expose HTTP: one Ingress object per app, served by a shared controller. The API only covers host and path routing, so anything more (headers, redirects, timeouts) means controller-specific annotations or raw nginx snippets.
The community ingress-nginx project has been retired and no longer receives releases or security fixes, and the Ingress API itself is feature-frozen. New work should target Gateway API.
Gateway API
Current standardTLS *.carlo.pub, host match
The successor to Ingress, maintained by Kubernetes SIG Network and implemented by many vendors; on OpenShift it is built in, backed by Envoy. Headers, redirects, traffic splitting and TLS are typed, portable fields instead of annotations.
Roles are split: the platform team owns the GatewayClass and Gateway (IP, ports, certificates, which namespaces may attach), while app teams own their HTTPRoutes.