Zum Hauptinhalt springen

서비스 맵

Lumie 클러스터에 배포된 모든 서비스의 네임스페이스, 레플리카 수, 이미지 출처를 정리합니다.


애플리케이션 서비스

lumie-backend

항목
네임스페이스lumie-backend
이미지zot.lumie-infra.com/applications/lumie-backend
레플리카3
포트8080 (HTTP)
런타임Spring Boot 3 / Java 21

기존 10개 마이크로서비스(Tenant, Auth, Billing, Academy, Exam, Content, Admin, Attendance, AI, File)가 단일 모노리스로 통합된 백엔드입니다. 각 도메인은 패키지 레벨로 분리되어 있으며, 공통 DB/Redis/RabbitMQ 연결을 공유합니다.

Traefik Ingress 라우팅 (lumie-edu.com):

경로담당 모듈
/api/tenant멀티테넌시 관리
/api/auth인증/인가
/api/academy학원/학생 관리
/api/admin관리자 권한
/api/exam시험/채점
/api/content공지/QnA/교재
/api/attendance출결
/api/billing구독/결제
/api/file파일 업/다운로드
/api/aiAI 대화/도구

Traefik StripPrefix 미들웨어가 /api/<module> 접두사를 제거하여 백엔드로 전달합니다.

헬스체크:

  • Liveness: GET /actuator/health/liveness
  • Readiness: GET /actuator/health/readiness
  • Metrics: GET /actuator/prometheus

lumie-frontend

항목
네임스페이스lumie-frontend
이미지zot.lumie-infra.com/applications/lumie-frontend
레플리카2
포트3000
런타임Next.js 14 / TypeScript

lumie-edu.com 루트(/)로 라우팅됩니다. www.lumie-edu.comlumie-edu.com으로 리다이렉트됩니다.


grading-svc

항목
네임스페이스lumie-worker
이미지zot.lumie-infra.com/applications/grading-svc
레플리카1
포트8000
런타임FastAPI / Python

OMR 이미지를 분석하여 시험 채점 결과를 반환합니다. lumie-backend에서 REST로 호출합니다 (http://grading-svc.lumie-worker.svc:8000).


report-svc

항목
네임스페이스lumie-worker
이미지zot.lumie-infra.com/applications/report-svc
레플리카1
포트8000
런타임FastAPI / Python

성적표 PDF/이미지를 생성합니다. lumie-backend에서 REST로 호출합니다 (http://report-svc.lumie-worker.svc:8000).


데이터 레이어

lumie-db (PostgreSQL + PgBouncer)

항목
네임스페이스lumie-db
오퍼레이터CloudNativePG (CNPG)
서비스 (RW)lumie-db-rw.lumie-db.svc:5432
서비스 (RO)lumie-db-ro.lumie-db.svc:5432
커넥션 풀러PgBouncer

멀티테넌트 스키마 분리를 사용합니다. AI 모듈은 읽기 전용 엔드포인트(RO_DB_HOST)로 연결합니다.


lumie-cache (Redis Sentinel)

항목
네임스페이스lumie-cache
서비스redis.lumie-cache.svc:26379 (Sentinel)
마스터 이름mymaster

인증 모듈의 세션/토큰 캐싱에 사용됩니다.


lumie-event (RabbitMQ)

항목
네임스페이스lumie-event
서비스rabbitmq.lumie-event.svc:5672

비동기 메시지 큐로 사용됩니다 (시험 채점 결과 처리 등).


minio

항목
네임스페이스minio
서비스minio.minio.svc:9000
외부 접근https://lumie-edu.com (프록시 경유)
버킷lumie

파일 업/다운로드, 시험지 이미지 저장에 사용됩니다. Zot 이미지 레지스트리의 S3 백엔드이기도 합니다.


인증/보안 서비스

keycloak

항목
네임스페이스keycloak
역할OIDC Provider, OAuth2 (Google/Kakao 연동)

lumie-backend의 OAuth2 인증(Google, Kakao, Keycloak 자체 로그인)을 처리합니다.


teleport

항목
네임스페이스teleport
역할제로 트러스트 인프라 접근
도메인lumie-infra.com
진입점OCI teleport-nlb (158.180.89.154) → NodePort 30443 → proxy pod

Teleport proxy pod는 NodePort 30443을 통해 OCI 전용 NLB(0213 계정)로 노출됩니다. multiplexing 모드(:443 TCP passthrough)로 Web/SSH/Kubernetes/Tunnel 트래픽을 처리합니다. ArgoCD UI, 내부 도구(Zot UI, Docs, Headlamp 등)에 대한 보안 접근을 제공합니다.


GitOps / CI/CD

argocd

항목
네임스페이스argocd
접근Teleport App Access
패턴App-of-Apps

tekton-pipelines

항목
네임스페이스tekton-pipelines
역할GitHub 웹훅 기반 이미지 빌드/배포

vault

항목
네임스페이스vault
역할KV-v2 시크릿 저장소
오퍼레이터Vault Secrets Operator (VSO)

모든 시크릿은 Vault에서 VaultStaticSecret 커스텀 리소스를 통해 Kubernetes Secret으로 동기화됩니다.


옵저버빌리티

observability

항목
네임스페이스observability
컴포넌트Prometheus, Grafana, Loki, Tempo, Thanos, Alertmanager, OpenTelemetry Collector

lumie-backend/actuator/prometheus 엔드포인트로 메트릭을 노출하며, ServiceMonitor를 통해 Prometheus가 자동 스크레이핑합니다.


전체 서비스 요약표

네임스페이스서비스레플리카이미지 출처
lumie-backendSpring Boot 모노리스3Zot (내부)
lumie-frontendNext.js2Zot (내부)
lumie-worker (grading-svc)FastAPI OMR1Zot (내부)
lumie-worker (report-svc)FastAPI 성적표1Zot (내부)
lumie-dbPostgreSQL (CNPG)CNPG 관리외부
lumie-cacheRedis SentinelSentinel 구성외부
lumie-eventRabbitMQ운영자 관리외부
minioMinIO1+외부
keycloakKeycloak1외부
teleportTeleport Cluster1외부
argocdArgoCDHA 구성외부
tekton-pipelinesTekton컨트롤러 기반외부
vaultVault1외부
observability모니터링 스택컴포넌트별외부

관련 문서