Kubernetes/KoudKloud - CKAD with Tests

Network Policy 생성 및 확인

비번변경 2021. 12. 11. 22:55

Network Policy는 IP 주소 또는 Port 수준에서 트래픽 흐름을 제어하는 경우 사용한다. 포드가 네트워크 상의 네트워크 엔티티와 통신할 수 있도록 허용하는 방법을 정의한다.

 

이 글에서는 Network Policy 정보를 확인하고, 생성하는 방법에 대해 정리한다.

 

Network Policy 목록 확인

kubectl get networkpolicies.networking.k8s.io

kubectl get networkpolicies.networking.k8s.io

 

Network Policy 상세 정보 확인

이름, Label, 정책 유형 등의 정보를 확인할 수 있다.

kubectl describe networkpolicies.networking.k8s.io <NAME>

# 예시
kubectl describe networkpolicies.networking.k8s.io payroll-policy

kubectl describe networkpolicies.networking.k8s.io &lt;NAME&gt;

.Spec.PodSelector 필드를 통해 어떤 포드에 적용되어 있는지 확인할 수 있다.

.Spec.Allowing ingress traffic 필드는 트래픽 정책을 나타낸다. 예시의 정책은 payroll 포드는 internal 포드로부터 8080 포트로 들어온 트래픽을 허용함을 알 수 있다.

 

Network Policy 생성

정의 yaml 파일을 작성하여 생성한다.

아래 yaml은 이름이 internal인 포드에 적용하는 네트워크 정책을 생성한 것이다. 유형은 egress이고, payroll 포드에 대한 8080 포트의 트래픽과, mysql 포드에 대한 3306 포트의 트래픽을 허용한다.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: internal-policy
spec:
  podSelector:
    matchLabels:
      name: internal
  policyTypes:
  - Egress
  egress:
  - to:
    - podSelector:
        matchLabels:
          name: payroll
    ports:
    - protocol: TCP
      port: 8080
  - to:
    - podSelector:
        matchLabels:
          name: mysql
    ports:
    - protocol: TCP
      port: 3306

 

 


참고 문서

https://kubernetes.io/ko/docs/concepts/services-networking/network-policies/

 

네트워크 정책

IP 주소 또는 포트 수준(OSI 계층 3 또는 4)에서 트래픽 흐름을 제어하려는 경우, 클러스터의 특정 애플리케이션에 대해 쿠버네티스 네트워크폴리시(NetworkPolicy) 사용을 고려할 수 있다. 네트워크폴

kubernetes.io