ingress-nginx 대신 Gateway API를 고른 이유

ingress-nginx는 2026년 3월에 지원이 종료됐습니다. 역할이 분리된 Gateway API와 Envoy Gateway로 갔습니다.

Kubernetes에서 외부 트래픽을 받는 방법으로 오랫동안 Ingress와 ingress-nginx를 써 왔습니다. 하지만 ingress-nginx 프로젝트는 2026년 3월에 지원이 종료됐고, 차세대 표준은 Gateway API입니다.

역할이 나뉜다

리소스 담당 하는 일
GatewayClass 플랫폼 어떤 구현체를 쓸지 (Envoy Gateway)
Gateway 플랫폼 실제 로드밸런서와 리스너 (:80)
HTTPRoute 앱 Host/경로 → Service 규칙. 앱 Namespace에 위치

플랫폼 담당은 Gateway까지만, 앱 담당은 자기 Namespace의 HTTPRoute만 관리합니다. 나중에 콘솔에서 "앱 팀은 라우트만 바꾼다"는 권한 구조로 이어가기에 좋습니다.

아무 Namespace나 붙지 못하게

Gateway의 allowedRoutes에 라벨 셀렉터를 걸어 두었습니다. claudharmony.io/gateway-access=true 라벨이 붙은 Namespace만 공용 Gateway에 라우트를 연결할 수 있습니다.

확인 명령

kubectl get gatewayclass,gateway -A
kubectl get httproute -A
kubectl -n dev describe httproute web   # Accepted / ResolvedRefs
← 기술블로그 목록