본문으로 건너뛰기

서비스

목적

이 페이지는 Lumie 클러스터 위에 배포된 공유 서비스를 위한 reference 가이드입니다. 제품 기능 동작이 아니라 GitOps 소유권 경계에 초점을 맞춥니다. 즉, 어떤 Argo CD 루트가 어떤 종류의 서비스를 소유하는지, 클러스터 범위 선행 조건은 어디에 있는지, 공유 인프라를 추가하거나 변경하기 전에 운영자가 무엇을 확인해야 하는지를 설명합니다.

소스 경로

경로역할
lumie-infra/applications/kustomization.yamlcluster-bootstrap과 제품 워크로드를 포함한 최상위 애플리케이션 등록
lumie-infra/applications/cluster-bootstrap/StorageClassClusterIssuer 리소스를 위한 wave -2 매니페스트
lumie-infra/bootstrap/kustomization.yamlwave -1 기반 서비스
lumie-infra/platform/kustomization.yaml공유 플랫폼 인프라
lumie-infra/storage/kustomization.yaml공유 데이터 플레인 인프라
lumie-infra/security/kustomization.yaml클러스터 보안 서비스
lumie-infra/observability/kustomization.yaml메트릭, 로그, 트레이스, autosizing 지원

런타임 계층 구조

루트별 서비스 카탈로그

루트핵심 서비스존재 이유
cluster-bootstrapminio-local StorageClass, letsencrypt-* ClusterIssuer 리소스워크로드가 참조하기 전에 먼저 존재해야 정상 reconcile이 가능한 클러스터 범위 선행 조건
bootstrapMinIO, Zot, Vault + Vault Secrets Operator, Gitea이후 앱들이 오브젝트 스토리지, 이미지 pull, 시크릿, Git에 의존할 수 있게 하는 기반 서비스
platformCoreDNS config, Traefik config, cert-manager, RabbitMQ operator, RabbitMQ, KEDA여러 워크로드가 공유하는 플랫폼 런타임
storageCNPG, infra-db, Redis, pgweb앱과 운영자를 위한 상태 저장 백엔드 서비스
securityKyverno, Falco, Keycloak, Trivy, Teleportadmission, identity, 런타임 보안, 접근 도구
observabilityPrometheus, Grafana, Loki, Tempo, Thanos, OTel, Goldilocks, VPAday-two telemetry와 sizing 지원
applicationsArgo CD self-management, Tekton, Lumie backend/frontend/workers, docs, dev env, tooling플랫폼 위에서 동작하는 제품 및 운영자 대상 워크로드

클러스터 범위 서비스와 네임스페이스 서비스

모든 공유 서비스가 일반적인 네임스페이스 로컬 앱은 아닙니다.

  • cluster-bootstrapClusterIssuerStorageClass 리소스가 클러스터 범위이므로 워크로드보다 먼저 반영되어야 해서 의도적으로 분리되어 있습니다.
  • platform/priority-classes도 Argo CD Application을 통해 reconcile되지만 역시 클러스터 범위입니다.
  • local-path-provisioner나 일부 addon 소유 ConfigMap 같은 K3s 관리 런타임 오브젝트는 App-of-Apps 루트 밖에 존재합니다.

운영자는 모든 공유 리소스가 네임스페이스별 Helm values 파일 아래에 있을 것이라고 가정하지 않도록 주의해야 합니다.

소유권 및 의존성 규칙

의존성상위 소유자하위 영향
Vault와 VSObootstrap/vault거의 모든 루트의 VaultStaticSecret 소비자는 Vault가 정상화될 때까지 대기
Zot 레지스트리bootstrap/zot클러스터 워크로드의 이미지 pull과 노드의 레지스트리 미러 동작
Traefikk3s addon + platform/traefik-config제품 앱, docs, Gitea, Keycloak, 커스텀 도메인의 ingress
cert-manager issuerapplications/cluster-bootstrapingress와 명시적 Certificate 오브젝트용 TLS 시크릿 발급
RabbitMQplatform/rabbitmq비동기 워커와 백엔드 메시징 계약
CNPG와 Redisstorage/제품 데이터베이스, 캐시, 내부 운영자 데이터베이스

운영 메모

  • 서비스 디렉터리를 추가하는 것만으로는 충분하지 않습니다. 상위 kustomization.yaml에 대응하는 argocd.yaml을 등록해야 Argo CD가 이를 볼 수 있습니다.
  • 공유 charts/common 차트는 많은 서비스의 기본 배포 표면이므로 ingress, service, VaultStaticSecret, ServiceMonitor, RBAC 동작이 원시 매니페스트가 아니라 재사용 템플릿에서 오는 경우가 많습니다.
  • 2026년 6월 14일에 확인한 라이브 클러스터에서는 cluster-bootstrap, platform, storage, security, observability, applications를 포함한 모든 활성 Argo CD 애플리케이션이 SyncedHealthy 상태였습니다.

계약 드리프트

검사한 소스에는 중요한 부트스트랩 불일치가 하나 있습니다.

  • lumie-infra/provision/ansible/roles/argocd-bootstrap/defaults/main.yml에는 여전히 app_of_apps_pathsweb-apps/application.yaml이 남아 있지만, 저장소에는 더 이상 lumie-infra/web-apps/가 없습니다. 현재 클러스터는 루트 애플리케이션이 이미 존재하므로 정상이나, 기본값을 갱신하거나 경로를 복구하지 않으면 새 부트스트랩은 실패합니다.

장애 지점

장애 지점영향
부모 kustomization에 앱 매니페스트가 등록되지 않음서비스가 Argo CD reconcile까지 도달하지 못함
부트스트랩 순서가 깨짐Vault, Gitea, 레지스트리 소비자가 선행 조건을 기다리며 멈출 수 있음
클러스터 범위 선행 조건 누락앱 네임스페이스가 sync되어도 ingress TLS와 스토리지 프로비저닝 실패
저장소 전용 레거시 디렉터리를 활성 서비스로 오인운영자가 잘못된 런타임 경로를 추적할 수 있음

검증

kubectl get applications -n argocd
kubectl get clusterissuers
kubectl get storageclass
rg -n "argocd.yaml|cluster-bootstrap|platform|storage|security|observability|applications" \
lumie-infra/applications/kustomization.yaml \
lumie-infra/bootstrap/kustomization.yaml \
lumie-infra/platform/kustomization.yaml \
lumie-infra/storage/kustomization.yaml \
lumie-infra/security/kustomization.yaml \
lumie-infra/observability/kustomization.yaml