인프라 DB
infra-db는 플랫폼 애플리케이션을 위한 공유 PostgreSQL 클러스터입니다. 메인 제품 데이터베이스와 분리되어 있으며 lumie-infra/storage/infra-db/** 아래에 있습니다.
소스 경로
lumie-infra/storage/infra-db/argocd.yamllumie-infra/storage/infra-db/manifests/cluster.yamllumie-infra/storage/infra-db/manifests/scheduled-backup.yamllumie-infra/storage/infra-db/manifests/r2-barman-vss.yamllumie-infra/storage/infra-db/manifests/vault-static-secret.yaml- 활성 소비자:
lumie-infra/observability/grafana/common-values.yamllumie-infra/bootstrap/gitea/**lumie-infra/security/teleport/manifests/vault-static-secret.yaml
- Bootstrap SQL은 Umami, Keycloak, Coder 같은 비활성 도구용 레거시 데이터베이스도 여전히 생성합니다.
런타임 역할
클러스터 계약
instances: 1imageName: zot.lumie-infra.com/storage/postgresql-wal2json:18.1enableSuperuserAccess: truewal_level: logicalmax_replication_slots: "8"storageClass: local-path-retain- R2 기반 Barman 백업 활성화,
04:00 KST에 scheduled backup 1회
소스 경로: lumie-infra/storage/infra-db/manifests/cluster.yaml
부트스트랩 SQL과 현재 드리프트
저장소 매니페스트는 inline postInitSQL로 서비스 데이터베이스를 부트스트랩합니다. 예를 들면 다음과 같습니다. 소스 앵커: lumie-infra/storage/infra-db/manifests/cluster.yaml의 spec.bootstrap.initdb.postInitSQL.
- "CREATE USER grafana WITH PASSWORD 'VAULT_PASSWORD'"
- "CREATE DATABASE grafana OWNER grafana"
이는 현재 소비자가 POSTGRES_PASSWORD 같은 Vault 시크릿에서 DSN을 렌더링하는 방식과 일치하지 않습니다. 이를 저장소의 계약 드리프트로 취급하세요.
- 소비자 측은 분명히 Vault 관리 자격 증명을 기대합니다.
- 클러스터 부트스트랩 측은 여전히 리터럴
VAULT_PASSWORDplaceholder를 보여줍니다.
운영 작업에서 이를 덮어쓰듯 설명하지 마세요. 플랫폼 앱 자격 증명을 바꾸거나 부트스트랩 재생성 동작에 의존하기 전에 라이브 클러스터 상태를 검증해야 합니다.
소유권 경계
infra-db는 제품 애플리케이션 데이터베이스가 아니라 플랫폼 데이터베이스입니다.lumie-db가 사용하는 공유 CNPG Helm 템플릿이 아니라 원시 매니페스트에서 직접 조정됩니다.- 여전히 CloudNativePG에서 설치한 공유 CNPG operator에 의존합니다.
장애 지점
- R2 자격 증명 시크릿
r2-barman-creds가 갱신되지 않으면 데이터베이스는 다른 면에서 healthy해 도 백업이 멈춥니다. - 부트스트랩 SQL 드리프트는 fresh-cluster 복구와 정상 상태 소비자 자격 증명이 같은 소스 파일에서 설명되지 않을 수 있음을 뜻합니다.
enableSuperuserAccess: true는 플랫폼 관리를 위해 필요하지만, 이 클러스터는 테넌트-safe runtime data plane처럼 취급되어서는 안 됩니다.
검증
kubectl get applications.argoproj.io -n argocd infra-db
kubectl get clusters.postgresql.cnpg.io -n infra-db
kubectl get scheduledbackups.postgresql.cnpg.io -n infra-db
kubectl get backups.postgresql.cnpg.io -n infra-db
kubectl get pods -n infra-db
관측성
- CNPG 클러스터 모니터링은 PodMonitor로 활성화됩니다.
- Grafana에는
infra-db에도 유용한 CloudNativePG 대시보드 JSON이 포함되어 있습니다. infra-db에 의존하는 플랫폼 애플리케이션이 상위 계층에서 먼저 실패하는 경우가 많으므로, 클러스터 점검과 소비자 로그를 함께 보세요.