클라우드/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/