본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

스테이징된 쿠버네티스 네트워크 정책

원문 보기 위키 갱신

스테이징된 쿠버네티스 네트워크 정책 (Staged Kubernetes network policy)

스테이징된 쿠버네티스 네트워크 정책 리소스(StagedKubernetesNetworkPolicy)는 쿠버네티스 네트워크 정책의 "스테이징" 버전이에요. 실제로 정책을 적용하기 전에 네트워크 동작을 미리 확인해 보는 용도로 쓰여요. 일단 저장되고 나면, 이 리소스는 Calico network policy가 뒷받침하는 쿠버네티스 네트워크 정책을 만들어요.

kubectl 명령에서는 다음과 같은 대소문자 구분 없는 별칭으로 CLI에 리소스 타입을 지정할 수 있어요: stagedkubernetesnetworkpolicy.projectcalico.org, stagedkubernetesnetworkpolicies.projectcalico.org, 그리고 stagedkubernetesnetworkpolicy.p, stagedkubernetesnetworkpolicies.p 같은 축약형도 가능해요.

출처: Staged Kubernetes network policy

본문

샘플 YAML

아래는 Kubernetes NetworkPolicy 문서의 예제 정책을 바탕으로 만든 샘플 정책이에요. 이 정책과 쿠버네티스 예제의 유일한 차이는 apiVersion과 kind가 스테이징된 쿠버네티스 네트워크 정책을 올바르게 지정하도록 바뀌었다는 점이에요.

apiVersion: projectcalico.org/v3
kind: StagedKubernetesNetworkPolicy
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

정의 (Definition)

자세한 내용은 Kubernetes NetworkPolicy 문서를 참고하세요.

더 알아보기 (Learn more)

스테이징된 정책은 Calico의 NetworkPolicy 리소스와 함께 쿠버네티스 네트워크 정책을 미리 검증하는 흐름에서 쓰여요. 실제 적용 전 정책을 미리 검증하는 흐름에서 쓰는 리소스라는 점만 기억하면 충분해요. 샘플 YAML의 구조는 일반 쿠버네티스 NetworkPolicy와 동일하니, 문법이 익숙하다면 바로 활용할 수 있어요.