밖에서 들어오는 트래픽을 다루는 후속 표준.
먼저 셋을 구분한다
-
① Ingress API (networking.k8s.io/v1)
- 폐기되지 않았다. GA 로 남아 있다
- 다만 feature-frozen — 새 기능은 추가되지 않는다
-
② Ingress NGINX (kubernetes/ingress-nginx)
- 커뮤니티 관리 컨트롤러. 2026년 3월 은퇴했다
- 릴리스·버그픽스·보안 패치가 모두 중단됐다
- 클라우드 네이티브 환경의 약 절반이 쓰던 것이다
-
③ NGINX Ingress Controller (nginxinc/kubernetes-ingress)
- F5/NGINX 가 관리하는 '별개' 코드베이스. 영향받지 않는다
-
② 와 ③은 이름이 거의 같고 코드가 다르다
-
"nginx ingress 가 없어졌다" 는 서술은 틀렸다
Gateway API 의 모양
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
spec:
gatewayClassName: envoy
listeners:
- name: https
protocol: HTTPS
port: 443
tls: { certificateRefs: [{ name: shop-tls }] }
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
spec:
parentRefs: [{ name: prod-gw }]
hostnames: ["shop.example.com"]
rules:
- matches: [{ path: { type: PathPrefix, value: /api } }]
backendRefs: [{ name: api, port: 80 }]
Ingress 와 무엇이 다른가
-
역할 분리 — GatewayClass(인프라 제공자) / Gateway(플랫폼 팀) / Route(앱 팀)
- RBAC 로 책임을 나눌 수 있다
- Ingress 는 하나의 객체에 전부 있어 권한을 쪼갤 수 없었다
-
표현력 — 헤더·쿼리 매칭 · 트래픽 분할(가중치) · 재시도 · 타임아웃이
- '표준 필드' 다
- Ingress 는 이 전부를 애너테이션으로 우회했고,
- 컨트롤러마다 애너테이션이 달라 이식성이 없었다
-
프로토콜 — HTTPRoute · GRPCRoute · TCPRoute · TLSRoute
지금의 위치
CKA v1.35 커리큘럼에도 "Use the Gateway API to manage Ingress traffic" 이 명시적으로 들어갔다. 이제 기본 경로로 봐야 한다
Istio · Contour · Traefik · Envoy Gateway 등 주요 컨트롤러가 모두 지원한다
주의 — 드롭인 교체가 아니다
- 애너테이션으로 하던 설정을 표준 필드로 다시 표현해야 하고,
- 인증서·DNS·모니터링 배선을 함께 옮겨야 한다
- 계획과 엔지니어링 시간이 필요하다
마이그레이션에서 실제로 걸리는 것
-
애너테이션으로 하던 설정을 표준 필드로 다시 표현해야 한다
- rewrite · 타임아웃 · 재시도 · 인증 연동
- 일부는 아직 표준에 없어 구현체 확장에 의존한다
-
인증서 참조 방식이 다르다 (certificateRefs)
-
다른 네임스페이스의 서비스를 참조하려면
- ReferenceGrant 를 만들어야 한다 (보안상 기본 차단)
-
모니터링·로그 형식이 컨트롤러마다 다르다
-
병행 운영 기간을 두고 트래픽을 조금씩 옮기는 것이 안전하다
대안 컨트롤러
Ingress NGINX 은퇴 후의 선택지
Envoy Gateway Gateway API 레퍼런스 구현에 가깝다
Istio 서비스 메시와 함께 쓸 때
Traefik · Contour Gateway API 지원
클라우드 관리형 AWS Gateway API 컨트롤러 등
NGINX Ingress(F5) Ingress 를 계속 쓰고 싶다면
무엇을 고르든 '누가 유지보수하는가' 를 먼저 확인한다 Ingress NGINX 은퇴가 남긴 교훈이 그것이다 — 절반이 쓰던 프로젝트를 한두 명이 자원봉사로 유지하고 있었다
면접 함정
- ❌ "Ingress API가 폐기됐다" → 은퇴한 것은 Ingress NGINX 컨트롤러다. API는 GA로 남아 있다.
- ❌ "Gateway API로 바꾸면 설정이 그대로 간다" → 애너테이션을 표준 필드로 재작성해야 한다.