1. 문제 / 필요성
Kubernetes에서 Pod는 내부 네트워크에서만 동작한다.
- Pod은 Cluster 내부 IP를 사용
- 외부에서는 직접 접근 불가능
- Pod IP는 계속 변경됨
외부에서 접근할 수 있는 “고정된 진입점”이 필요하다
2. NodePort란 무엇인가
NodePort는 Kubernetes Service 타입 중 하나로 클러스터 외부에서 접근할 수 있도록 Node의 포트를 열어주는 방식이다.
Node의 IP + 특정 포트를 통해 Pod에 접근 가능하게 만든다
3. 기본 구조

NodePort의 흐름은 다음과 같다.
Client → NodeIP:NodePort → Service → Pod
- Client → Node의 IP로 접근
- NodePort → 열린 포트
- Service → Pod으로 라우팅
4. 내부 동작 구조
NodePort는 단순히 포트를 여는 것이 아니다.
동작 흐름:
- Service 생성 (type: NodePort)
- API Server에 정보 저장
- kube-proxy가 이를 감지
- Node에 포트 개방 (iptables/IPVS)
- 요청이 들어오면 Pod으로 전달
NodePort는 “Node 레벨에서 트래픽을 Pod으로 전달하는 구조”
5. 포트 구조 이해
NodePort에는 3개의 포트가 존재한다.
| 구분 | 의미 |
| targetPort | Pod 내부 컨테이너 포트 |
| port | Service 내부 포트 |
| nodePort | 외부에서 접근하는 포트 |
예시
apiVersion: v1
kind: Service
metadata:
name: nodeport-test
spec:
type: NodePort
selector:
app: my-app
ports:
- port: 80
targetPort: 8080
nodePort: 30080
흐름
Client → NodeIP:30080 → Service:80 → Pod:8080
6. 실제 요청 흐름
NodePort 요청은 다음 순서로 처리된다.
- Client가 NodeIP:NodePort로 요청
- kube-proxy가 Service 규칙 확인
- 연결된 Pod 목록 확인
- 하나의 Pod으로 전달
특징
- Pod이 여러 개여도 자동 분산
- Pod이 바뀌어도 영향 없음
7. NodePort 범위
기본적으로 NodePort는 특정 범위에서 할당된다.
30000 ~ 32767
- 직접 지정 가능
- 지정하지 않으면 자동 할당
8. 장점
- 설정이 단순함
- 외부 접근 가능
- 별도 LoadBalancer 없이 사용 가능
9. NodePort 한계
NodePort는 테스트나 간단한 환경에서는 유용하지만 실제 운영에서는 한계가 있다.
① Node IP를 직접 알아야 함
- 모든 Node IP 관리 필요
- 환경이 바뀌면 접근 방식도 변경됨
② 포트 관리 필요
- 30000번대 포트 사용
- 서비스 많아지면 충돌 가능
③ 로드밸런싱 한계
- 기본적인 분산만 제공
- 외부 트래픽 분산 기능 부족
그래서 실제 운영에서는
- LoadBalancer
- Ingress
를 함께 사용한다.
10. 언제 사용하는가
NodePort는 다음 상황에서 주로 사용된다.
- 로컬 환경 테스트
- 간단한 개발 환경
- Kubernetes 내부 구조 학습
11. 구조 전체 연결
이전 글과 연결하면
- Deployment → 상태 유지
- Pod → 실행
- Service → 연결
- NodePort → 외부 연결
NodePort는 “클러스터 외부에서 내부 Service로 들어오는 가장 단순한 방식”
12. 핵심 정리
- NodePort는 Node의 포트를 통해 외부 접근 제공
- NodeIP:Port로 접근 가능
- kube-proxy가 Pod으로 라우팅
- 구조는 단순하지만 운영 환경에서는 한계 존재
'Data Engineering > Kubernetes' 카테고리의 다른 글
| Kubernetes Secret 생성과 Pod에서 사용하는 방법 (0) | 2026.05.07 |
|---|---|
| Kubernetes 롤링 업데이트 이해 (0) | 2026.04.30 |
| Kubernetes 객체 이해 (Pod / Deployment / Service) (0) | 2026.04.30 |
| Kubernetes 상태 유지 구조 (Controller & Reconciliation Loop) (0) | 2026.04.21 |
| Kubernetes 아키텍처 이해 (1) | 2026.04.21 |