클라우드/Kubernetes
[kubernetes] Network Policy
Cloud_Park
2024. 1. 8. 00:50
네트워크 폴리시는 라벨/ ipblock/네임스페이스에 대해서 특정 조건만 허용하는 기능이다. * 정보를 넣지 않으면 모두 차단
나가는 트래픽은 egress , 들어오늘 트래픽을 Ingress 라하며 NP는 여러 개가 있으면 or식으로 모두 합쳐지게 되어, 하나의 오프젝트로 모두 설명할 필요 없이 세분화하여 나눠 관리가 가능하다.
아래의 예제를 통해 확인해 보자 .
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
- Egress
ingress:
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5978
k8s에 pod에서 dns가 필요하다면, egress에 Tcp/udp 53을 오픈이 필요하다
참조: https://kubernetes.io/docs/concepts/services-networking/network-policies/