Skip to content

쿠버네티스 네트워크 정책

기본 개념

네트워크 정책은 클러스터 내의 트래픽 흐름을 제어하여 파드가 서로 또는 다른 네트워크 엔드포인트와 어떻게 소통할지 결정합니다. 이 정책은 특정 파드가 특정 포트로 트래픽을 받거나 보내는 것을 허용하거나 차단할 수 있습니다.

인그레스(Ingress) 및 이그레스(Egress)

  • 인그레스: 외부로부터 파드로 들어오는 트래픽을 제어합니다.
  • 이그레스: 파드에서 외부로 나가는 트래픽을 제어합니다.

네트워크 정책 적용 예시

웹 서버, API 서버, 데이터베이스 서버 구성 예를 통해 인그레스 및 이그레스 규칙을 설명합니다. 아래는 각 서비스에 대한 네트워크 정책 정의의 예시입니다.

yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: db-policy
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
    - Ingress
  ingress:
    - from:
        - podSelector:
            matchLabels:
              name: api-pod
      ports:
        - protocol: TCP
          port: 3306

네트워크 정책 조회

bash
kubectl get netpol

네트워크 정책 생성

네트워크 정책을 생성하는 과정은 kubectl create 커맨드를 사용하여 YAML 파일로 정의된 정책을 쿠버네티스에 적용하는 것을 포함합니다.

네트워크 정책 적용 확인

파드에 정책이 제대로 적용되었는지 확인하기 위해 kubectl describe networkpolicy 커맨드를 사용하여 정책에 정의된 규칙을 검토할 수 있습니다.

Note

K8s Reference Docs

https://kubernetes.io/docs/concepts/services-networking/network-policies/https://kubernetes.io/docs/tasks/administer-cluster/declare-network-policy/