Development/Docker&Kubernetes
[k8s] Network Policy namespaceSelector
폴피드
2022. 3. 28. 15:24
Network Policy 에 관한 설정들 참고할 만한것 몇가지 작성해본다.
아래 두개의 NetworkPolicy 는 아래 조건을 만족한다.
- test1 네임스페이스에서 pod 끼리는 전부 호출 가능하다
- test1 네임스페이스에서 test2로만 호출가능하며 포트는 80 포트를 사용한다.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: np
namespace: test1
spec:
podSelector: {}
policyTypes:
- Egress
egress:
- to:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: test2
- ports:
- port: 80
protocol: TCP
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: np
namespace: test2
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: test1
위에 정의된 부분을 확인해보자면 다음과 같다.
- podSelector: {} : 해당 네임스페이스의 모든 pod 에서는 호출 가능하다.
- egress.to.namespaceSelector : 네임스페이스의 라벨을 정의함으로써 라벨이 일치하는 네임스페이스로 호출가능하다.
- ingress.from.namespaceSelector : 일치하는 라벨의 네임스페이스에서반 inbound 접근이 가능하다.
확인을 위해서는 curl 을 이용한다.
- 우선 서비스의 도메인 이름은 서비스이름.네임스페이스.svc.cluster.local 로 정의된다.
- 도메인에 대한 정보는 pod 의 /etc/resolv.conf 로 확인 가능하다.
728x90
반응형