디스크 기반 Cilium 네트워크 정책

디스크 기반 Cilium 네트워크 정책

네트워크 정책 YAML 파일을 Kubernetes CRD를 거치지 않고 노드 파일시스템에 직접 배치할 수 있는 기능을 설명하는 문서예요. Cilium 에이전트가 해당 디렉터리를 모니터링하며 정책을 로드해요.

출처: Disk based Cilium Network Policies

본문

이 기능을 사용하면 네트워크 정책 YAML 파일을 노드의 파일시스템에 직접 배치할 수 있어요. k8s CRD를 통한 정의가 필요 없어요.

static-cnp-path 구성 필드를 설정하면, 정책이 로드될 디렉터리를 지정할 수 있어요. Cilium 에이전트는 이 디렉터리에 있는 모든 정책 YAML 파일을 처리해 정책 엔진에 포함되는 규칙으로 변환해요. 또한 Cilium 에이전트는 이 디렉터리에 새 정책 YAML 파일이 추가되거나 갱신·삭제되는 것을 모니터링해, 정책 엔진의 규칙에 해당 변경을 반영해요. 이 기능은 CiliumNetworkPolicy와 CiliumClusterwideNetworkPolicy만 지원한다는 점에 유의하세요.

Cilium 에이전트가 모니터링할 디렉터리는 볼륨 마운트를 사용해 호스트에서 마운트되어야 해요. Helm으로 배포하는 사용자는 extraArgs와 extraHostPathMounts를 통해 다음과 같이 활성화할 수 있어요.

extraArgs:
- --static-cnp-path=/policies
extraHostPathMounts:
- name: static-policies
  mountPath: /policies
  hostPath: /policies
  hostPathType: Directory

정책이 Kubernetes CRD를 통해 설정됐는지 디렉터리에서 직접 설정됐는지 확인하려면 cilium policy get 명령을 실행하고 정책 내의 source 속성을 살펴보세요. 출력에서 디렉터리에서 가져온 정책은 source 필드가 directory로 설정된 것을 볼 수 있어요. 또한 cilium endpoint get <endpoint_id>도 해당 엔드포인트와 연결된 정책의 출처를 보여주는 필드를 가져요.

이전 버전의 제한 사항과 알려진 이슈 (Previous limitations and known issues)

Cilium 1.14 이전 버전에서는 클러스터 외부 피어에 대한 deny 정책이 때때로 동작하지 않았어요. GitHub issue 15198 때문이에요. 클러스터로 유입되는 외부 트래픽을 관리하기 위해 deny 정책에 의존한다면 1.14 이상 버전을 사용하고 있는지 확인하세요.

더 알아보기 (Learn more)