ingress-nginx 대신 Gateway API를 고른 이유
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
← 기술블로그 목록