Nginx Retirement
The Kubernetes community NGINX Ingress Controller is being retired in March 2026, but teaching it remains highly valuable as it's still one of the most widely deployed controllers and the core Ingress API concepts transfer directly to all alternatives. For production environments, I recommend Traefik or the F5 NGINX Ingress Controller (nginx.org/ingress-controller, which is actively maintained and separate from the retiring community version), as defining an Ingress resource is virtually identical across controllers—only the ingressClassName and occasional annotations differ.
Code Comparison:
# NGINX Ingress (Community - retiring March 2026)
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
spec:
ingressClassName: nginx
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app-service
port:
number: 80
# Traefik Ingress (Production Alternative)
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
spec:
ingressClassName: traefik
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app-service
port:
number: 80
Key Takeaway: The Ingress resource structure is standardized—switching controllers is primarily a matter of changing ingressClassName and controller-specific annotations.