Kubernetes NodePort 환경에서 NGINX Gateway Fabric 외부 통신 구조
Kubernetes에서 NGINX Gateway Fabric을 사용하고 외부 노출 방식을 NodePort로 구성했다면, 외부 사용자가 Gateway의 80/443 포트에 직접 접근하는 구조가 아니다.
외부 트래픽은 먼저 Kubernetes Worker Node의 IP와 NodePort로 들어온 뒤, Kubernetes Service를 통해 NGINX Gateway Fabric으로 전달된다.
1. 전체 통신 구조
외부 사용자 / 외부 서버
│
│ HTTP / HTTPS
▼
Kubernetes Worker Node
(Node IP)
│
│ NodePort
│ 예: 30080 / 30443
▼
NGINX Gateway Fabric Service
│
▼
Gateway
├─ HTTP : 80
└─ HTTPS : 443
│
▼
HTTPRoute
│
▼
Application Service
│
▼
Pod
따라서 담당자가 말한 “외부 통신은 Host → Kubernetes 아니냐?”는 표현은 외부 트래픽이 Pod나 Gateway의 80/443으로 직접 들어오는 것이 아니라, 먼저 Kubernetes Node를 통해 들어오는 구조를 의미한다고 볼 수 있다.
2. 실제 포트 흐름
| 구간 | HTTP | HTTPS |
|---|---|---|
| 외부 → Worker Node | NodeIP:30080 | NodeIP:30443 |
| Gateway Listener | 80 | 443 |
| Gateway → Backend | HTTPRoute 설정에 따라 Service로 전달 | |
예를 들어 NodePort가 각각 30080과 30443으로 지정되었다면 실제 접근 흐름은 다음과 같다.
외부 → Worker Node IP:30080 → Gateway HTTP:80
외부 → Worker Node IP:30443 → Gateway HTTPS:443
3. Gateway의 80/443과 NodePort의 차이
여기서 가장 헷갈리기 쉬운 부분은 Gateway Listener 포트와 외부 접근 포트가 서로 다를 수 있다는 점이다.
Gateway Listener
HTTP : 80
HTTPS : 443
외부 접근
HTTP : Worker Node IP:30080
HTTPS : Worker Node IP:30443
Gateway API에서는 Gateway 리소스의 Listener에 HTTP 80, HTTPS 443 등을 정의한다. 하지만 Service가 NodePort 방식이라면 외부 네트워크에서 실제로 접근하는 대상은 Worker Node IP + NodePort가 된다.
4. 방화벽은 어디를 열어야 할까?
NodePort 구조라면 외부 방화벽 정책 역시 Worker Node의 NodePort를 기준으로 확인해야 한다.
Source
외부 서버 / 외부 사용자망
Destination
Kubernetes Worker Node IP
Port
TCP 30080
TCP 30443
즉 외부 방화벽에서 Gateway Controller의 관리 포트를 개방하는 것이 아니라, 외부 트래픽을 받는 Worker Node의 NodePort를 개방하는 방식이다.
5. 최종 정리
[외부]
│
│ TCP 30080 / 30443
▼
[Worker Node IP]
│
│ NodePort
▼
[NGINX Gateway Fabric Service]
│
▼
[Gateway]
HTTP : 80
HTTPS: 443
│
▼
[HTTPRoute]
│
▼
[Service]
│
▼
[Pod]
따라서 NodePort 환경에서는 “외부 → Kubernetes Host(Node) → NGINX Gateway Fabric → Service → Pod” 구조로 이해하면 된다.
핵심은 Gateway에는 80/443 Listener를 설정하지만 외부에서 접근할 때는 Worker Node의 NodePort를 사용한다는 점이다.
'지식 공유 > Kubernetes' 카테고리의 다른 글
| Kubernetes HPA VPA 차이와 장단점 총정리 - Pod 자동 확장과 리소스 최적화 (0) | 2026.09.29 |
|---|---|
| Ingress-NGINX에서 NGINX Gateway Fabric으로 전환하는 전체 작업 절차 (0) | 2026.09.28 |
| Rancher Single에서 RKE2 3-Node HA 구성 전환 및 장애 복구 대응 정리 (0) | 2026.09.28 |
| Kubernetes Rancher에서 Init:ImagePullBackOff 발생 원인과 확인 방법 (0) | 2026.09.28 |
