2026. 2. 22. 17:14ㆍk8s
Kubernetes NetworkPolicy에서
많은 사람들이 헷갈리는 부분이 바로 이것이다.
policyTypes는 무엇을 의미하는가?
단순히 Ingress/Egress를 적는 옵션이 아니다.
📌 policyTypes의 진짜 역할
policyTypes는:
어떤 방향의 트래픽을 “기본 차단(Default Deny)”으로 만들 것인지 결정하는 스위치
이다.
NetworkPolicy는 기본적으로 “Allow 규칙만 작성”한다.
하지만 그 전에 policyTypes가 먼저 동작한다.
📦 기본 동작 정리
기본 Kubernetes 상태는:
모든 Pod ↔ 모든 Pod 통신 허용NetworkPolicy를 생성하면:
policyTypes에 명시된 방향이 Default Deny 상태가 된다.그리고 그 위에 Allow 규칙을 추가하는 구조다.
📌 1️⃣ Ingress만 지정한 경우
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: ingress-only
spec:
podSelector:
matchLabels:
app: nginx
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
role: frontend
결과
- Ingress → Default Deny
- Egress → 기존처럼 모두 허용
즉,
nginx Pod는 외부에서 아무나 접근할 수 없고
명시한 frontend Pod만 접근 가능.
하지만 nginx Pod가 외부로 나가는 트래픽은 여전히 허용된다.
📌 2️⃣ Egress만 지정한 경우
policyTypes:
- Egress
결과
- Ingress → 기본 허용
- Egress → Default Deny
즉,
Pod는 외부에서 접근 가능하지만
밖으로 나가는 트래픽은 명시된 것만 허용된다.
📌 3️⃣ Ingress + Egress 둘 다 지정한 경우
policyTypes:
- Ingress
- Egress
결과
- Ingress → Default Deny
- Egress → Default Deny
양방향 모두 기본 차단.
명시한 트래픽만 허용.
📊 한눈에 보는 차이
| policyTypes 설정 | Ingress | Egress |
|---|---|---|
| 없음 | 허용 | 허용 |
| Ingress | 차단 | 허용 |
| Egress | 허용 | 차단 |
| 둘 다 | 차단 | 차단 |
🚨 매우 중요한 사실
policyTypes를 명시하지 않으면 Kubernetes가 자동 추론한다.
- ingress 규칙만 있으면 → Ingress만 적용
- egress 규칙이 있으면 → Egress도 자동 적용
하지만 실무에서는 반드시 명시하는 것이 안전하다.
이유:
- 가독성 증가
- 유지보수 시 사고 방지
- 의도 명확화
🧠 실무 설계 핵심 원칙
실무에서는 보통 이렇게 시작한다:
1️⃣ Default Deny 정책 생성
policyTypes:
- Ingress
- Egress
podSelector: {}
2️⃣ 필요한 트래픽만 명시적으로 허용
- API 접근 허용
- DB 접근 허용
- DNS 허용
🎯 핵심 요약
NetworkPolicy는 단순히 Allow 규칙이 아니다.
policyTypes가 먼저 Default Deny를 만들고,
그 위에 Allow를 쌓는 구조다.
이 개념을 이해하면
NetworkPolicy는 더 이상 어렵지 않다.
'k8s' 카테고리의 다른 글
| Kubernetes NetworkPolicy Egress (DNS만 허용) — 실제 검증 방법 정리 (0) | 2026.02.22 |
|---|---|
| 🚀 CKAD 시험에서 가장 많이 나오는 내용 정리 (합격용 핵심 요약) (0) | 2026.02.22 |
| 🚀 CKAD 시험 대비 – Kubernetes Job 완전 정리 (0) | 2026.02.22 |
| # 💾 Kubernetes PV와 PVC 완전 정리 (0) | 2026.02.22 |
| 🧠 Pod 안에서 kubectl 대신 API 호출하기 (0) | 2026.02.22 |