728x90
반응형
개요
Cluster 내부 및 외부에서 들어오는 Traffic은 NetworkPolicy를 사용하여 관리 합니다.
NetworkPolicy의 주요 요소 및 동작 요약
1. 적용 대상
- PodSelector를 통해 특정 라벨이 붙은 Pod에만 네트워크 정책을 적용할 수 있습니다.
- NamespaceSelector를 사용하여 특정 네임스페이스에 있는 Pod에 대한 정책을 설정할 수 있습니다.
- podSelector: {}와 같이 설정하면 네임스페이스 내의 모든Pod에 적용됩니다.
2. 정책 타입
- Ingress: Pod로 들어오는 트래픽을 제어합니다.
- Egress: Pod에서 나가는 트래픽을 제어합니다.
하나의 NetworkPolicy에서 둘 다 설정할 수도 있습니다.
3. 규칙 정의
- IPBlock: CIDR 형식으로 IP 범위를 지정하여 특정 IP 대역에 대해 허용하거나 차단할 수 있습니다.
- PodSelector: Pod라벨을 사용하여 트래픽을 허용할 대상 포드를 정의할 수 있습니다.
- NamespaceSelector: 네임스페이스 라벨을 기반으로 트래픽 허용 여부를 결정할 수 있습니다.
4. 기본 동작
- NetworkPolicy가 없을 때: 모든 Pod는 서로 자유롭게 트래픽을 주고받을 수 있습니다.
- NetworkPolicy가 있을 때: 지정된 규칙에 맞는 트래픽만 허용되며, 그 외의 트래픽은 차단됩니다.
5. 동작 방식
- NetworkPolicy는 Pod에 적용된 트래픽을 필터링하며, 정책이 적용된 Pod는 기본적으로 모든 인그레스/이그레스 트래픽을 차단하고, 정책에서 명시적으로 허용된 트래픽만 통과시킵니다.
- 여러 NetworkPolicy가 동일한 Pod에 적용될 수 있으며, 이 경우 정책들은 AND 관계로 결합되어 더 엄격한 제어가 가능합니다.
NetworkPolicy 설정 예시
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: example-policy
namespace: default
spec:
podSelector:
matchLabels:
app: myapp
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector:
matchLabels:
app: otherapp
egress:
- to:
- ipBlock:
cidr: 192.168.0.0/16
- podSelector: app: myapp 라벨을 가진 Pod에 적용.
- Ingress: app: otherapp 라벨을 가진 Pod로부터 들어오는 트래픽만 허용.
- Egress: 192.168.0.0/16 IP 대역으로 나가는 트래픽만 허용.
요약
- NetworkPolicy는 특정 Pod에 대한 네트워크 트래픽을 제어하는 정책입니다.
- PodSelector, NamespaceSelector, IPBlock 등을 사용해 세밀하게 트래픽 규칙을 정의합니다.
- 정책이 없으면 모든 트래픽이 허용되지만, 정책이 있으면 명시적으로 허용된 트래픽만 통과됩니다.
상세
https://doitnow-man.tistory.com/entry/CKA-43-network-policy
728x90
반응형
'Cloud > k8s-CKAD' 카테고리의 다른 글
[CKAD] Admission Controller (1) | 2024.10.16 |
---|---|
[CKAD] Statefulset 과 Headless Service (0) | 2024.10.09 |
[CKAD] service (0) | 2024.09.16 |
[CKAD] Jobs과 Cron Job (2) | 2024.09.14 |
[CKAD] Pod의 배포 및 업데이트 (0) | 2024.09.02 |