참고
Network Policy
NOTE
Network policy를 통해 IP, namespace, pod에 따른 클러스터 내부 트래픽을 제어할 수 있다!
백엔드 서버만 접근을 허용한다.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: backend-to-database
spec:
podSelector: # 정책을 적용할 Pod 선택
matchLabels:
app: database
policyTypes: # 수신 트래픽에 대한 정책(Ingress/Egress)
- Ingress
ingress: # 허용 수신 트래픽(ingress)
- from:
- podSelector:
matchLabels:
app: backend
ports:
- protocol: TCP
port: 3306
YAML
복사
kubectl get networkpolicy
kubectl get networkpolicies -n my-namespace
Bash
복사
ingress 설정
NOTE
좀 더 세부적인 상황
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: backend-to-database
spec:
podSelector: # 정책을 적용할 Pod 선택
matchLabels:
app: database
policyTypes: # 수신 트래픽에 대한 정책(Ingress/Egress)
- Ingress
ingress: # 허용 수신 트래픽(ingress)
- from:
- podSelector: # 허용 pod
matchLabels:
app: backend
namespaceSelector: # 허용 네임스페이스
matchLabels:
name: prod
- ipBlock: # 허용 IP범위
cidr: 192.168.5.10/32
ports:
- protocol: TCP
port: 3306
YAML
복사
egress 설정
NOTE
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: backend-to-database
spec:
podSelector: # 정책을 적용할 Pod 선택
matchLabels:
app: database
policyTypes: # 수신 트래픽에 대한 정책(Ingress/Egress)
- Ingress
ingress: # 허용 수신 트래픽(ingress)
- from:
- podSelector:
matchLabels:
app: backend
ports:
- protocol: TCP
port: 3306
egress:
- to:
- ipblock:
cidr: 192.168.5.10/32
ports:
- protocol: TCP
port: 80
YAML
복사