
Pod 간 트래픽을 제어하는 강력한 보안 기능
Ingress: 외부에서 들어오는 트래픽
Egress: 내부에서 나가는 트래픽
예:
특정 Pod 간의 트래픽 허용/차단 규칙을 설정하는 객체
labels로 지정Ingress, Egress, 혹은 둘 다❌ 웹서버가 DB에 직접 접근하지 못하도록 차단하고,
✅ API 서버만 DB에 접근 가능하게 설정
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-policy
spec:
podSelector:
matchLabels:
app: db
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: api
ports:
- protocol: TCP
port: 3306
podSelector: 어떤 Pod에 이 정책을 적용할 것인지 (app=db)from: 어떤 Pod가 접근 가능한지 (app=api)ports: 허용할 포트 (3306)policyTypes: Ingress만 격리policyTypes에 Ingress, Egress 명시하지 않으면 격리되지 않음
NetworkPolicy는 네트워크 플러그인이 지원해야 적용됨
미지원 플러그인에서는 생성은 되지만 정책이 적용되지 않음
| 항목 | 설명 |
|---|---|
| 기본 상태 | 모든 Pod 간 통신 허용 |
| 격리 방식 | policyTypes로 명시 (Ingress / Egress) |
| 적용 대상 | Label로 Pod 선택 |
| 정책 미지원시 | 생성 가능하나 적용되지 않음 |
| 목적 | 불필요하거나 위험한 Pod 간 통신 차단 |