본문 바로가기
Development/Docker&Kubernetes

[k8s] Network Policy namespaceSelector

by 폴피드 2022. 3. 28.
728x90
반응형

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
반응형