DEV Community

정주신
정주신

Posted on • Originally published at manoit.co.kr

Kubernetes Ingress NGINX Retirement and Gateway API Migration Guide

Kubernetes Ingress NGINX Retirement and Gateway API Migration

The NGINX Ingress Controller, one of Kubernetes' most widely-used components, is transitioning from active development to maintenance mode. The Kubernetes community is now emphasizing the new Gateway API standard. For teams running NGINX Ingress in production, understanding this migration path is essential.

NGINX Ingress → Gateway API: Why the shift?

NGINX Ingress was designed as a standalone solution. However, as Kubernetes matured, native service networking evolved. Gateway API provides unified control across different implementations and better integrates with Kubernetes' evolving network model.

Migration Strategy: NGINX to Gateway API

Phase 1: Assessment

# Check current NGINX Ingress version
kubectl get deployment -n ingress-nginx ingress-nginx-controller -o jsonpath='{.spec.template.spec.containers[0].image}'

# List all current Ingress resources
kubectl get ingress --all-namespaces
kubectl describe ingress <name> -n <namespace>
Enter fullscreen mode Exit fullscreen mode

Phase 2: Deploy Gateway API

# Install Gateway API CRDs
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: my-gateway
spec:
  gatewayClassName: nginx
  listeners:
  - name: http
    protocol: HTTP
    port: 80
    allowedRoutes:
      namespaces:
        from: All
  - name: https
    protocol: HTTPS
    port: 443
    tls:
      mode: Terminate
      certificateRefs:
      - name: tls-secret
Enter fullscreen mode Exit fullscreen mode

Phase 3: Migrate Routes

# Old Ingress approach
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web
            port:
              number: 8080

# New HTTPRoute (Gateway API)
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: example
spec:
  parentRefs:
  - name: my-gateway
  hostnames:
  - "example.com"
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /
    backendRefs:
    - name: web
      port: 8080
Enter fullscreen mode Exit fullscreen mode

Timeline and Support

NGINX Ingress security updates continue through 2026. Start migration planning now, complete migration by end of 2026.

FAQ

Q: Must I migrate immediately?

No. NGINX Ingress receives security updates through 2026. Plan migration strategically.

Q: What about performance?

Gateway API shows similar performance with better flexibility and future-proofing.

Q: Are there compatibility layers?

Yes, some distributions provide compatibility adapters during transition.


This article was originally published on ManoIT Tech Blog.

Top comments (0)