피드로 돌아가기
CloudNativePG: Running PostgreSQL in Kubernetes Without the Pain
Dev.toDev.to
Infrastructure

Hardened K8s 환경 내 CNPG 배포 병목 해결 및 정책 최적화

CloudNativePG: Running PostgreSQL in Kubernetes Without the Pain

Guatu2026년 6월 16일13intermediate

Context

Kubernetes Native Primitive를 활용한 CloudNativePG(CNPG) 도입 시, 보안 강화 클러스터의 Admission Controller 정책으로 인해 Bootstrap Job이 차단되는 현상 발생. Operator 상태는 정상이나 실제 Pod 생성이 거부되어 'Setting up primary' 상태에서 무한 대기하는 가시성 결여 문제 직면.

Technical Solution

  • Operator가 관리하는 상위 리소스(Cluster)가 아닌, 실제로 생성하는 하위 리소스(Job, Pod)의 Event 분석을 통한 병목 지점 식별
  • CNPG Operator가 생성하는 Bootstrap Job의 Pod Template 내 Resource Limit 미설정으로 인한 Kyverno/OPA Gatekeeper 정책 위반 확인
  • cnpg.io/cluster Label을 활용하여 CNPG 생성 리소스에 한정된 정밀한 Policy Exclusion 설계
  • 특정 Namespace와 Label을 조합한 Narrow Exclusion 적용으로 전체 보안 수준 유지와 서비스 가용성 동시 확보
  • GitOps(ArgoCD)의 App-of-Apps 패턴을 통한 Operator와 Policy Exclusion 설정의 동기화 관리

- CNPG 클러스터 정지 시 `kubectl describe job` 및 관련 Pod Event 우선 확인 - Admission Controller 적용 시 Operator 생성 리소스에 대한 Label-based Exclusion 설정 검토 - PostgreSQL Minor Version 고정 및 Pod에 대한 Guaranteed QoS 설정 적용 - Read/Write 분리 구조를 애플리케이션 레벨에서 초기 설계에 반영

원문 읽기