본문으로 건너뛰기

KEDA

목적

KEDA는 CPU 또는 RabbitMQ 큐 깊이를 기준으로 스케일링하는 Lumie 워크로드에 autoscaling을 제공합니다. 플랫폼 계층은 KEDA operator를 설치하고, 개별 애플리케이션은 각자 ScaledObject 매니페스트를 소유합니다.

이 페이지는 autoscaling trigger, trigger auth, 큐 깊이 기반 스케일링 임계값을 변경하는 개발자를 위한 레퍼런스 문서입니다.

소스 경로

경로역할
lumie-infra/platform/keda/argocd.yamlKEDA용 Argo CD 애플리케이션
lumie-infra/platform/keda/helm-values.yamlKEDA operator, metrics server, webhook 이미지와 리소스
lumie-infra/applications/lumie/backend/manifests/scaled-object.yaml백엔드 CPU autoscaling
lumie-infra/applications/lumie/frontend/manifests/scaled-object.yaml프런트엔드 CPU autoscaling
lumie-infra/applications/lumie/worker/grading-svc/manifests/{scaled-object.yaml,trigger-auth.yaml}grading 큐 깊이 기반 스케일링과 공유 RabbitMQ trigger auth
lumie-infra/applications/lumie/worker/report-svc/manifests/scaled-object.yamlreport 큐 깊이 기반 스케일링

퍼블릭 표면

표면네임스페이스비고
KEDA operatorkeda-systemScaledObjectTriggerAuthentication 리소스를 조정
Metrics API serverkeda-systemHPA에 외부 메트릭 제공
Admission webhookkeda-systemKEDA 리소스 검증 및 변형
ScaledObject CR앱 네임스페이스실제 autoscaling 계약을 정의

런타임 흐름

활성 ScaledObject

워크로드네임스페이스트리거최소최대소스
lumie-backendlumie-backendCPU utilization 7025applications/lumie/backend/manifests/scaled-object.yaml
lumie-frontendlumie-frontendCPU utilization 7025applications/lumie/frontend/manifests/scaled-object.yaml
grading-svclumie-workerRabbitMQ queue grading.omr-request, queue length 2048applications/lumie/worker/grading-svc/manifests/scaled-object.yaml
report-svclumie-workerRabbitMQ queue report.generation-request, queue length 4045applications/lumie/worker/report-svc/manifests/scaled-object.yaml

백엔드 ScaledObject는 JVM warmup 스파이크가 즉시 최대 replica로 치솟지 않도록 명시적인 scale-up stabilization도 정의합니다.

큐 트리거 인증

검사한 Git 관리 auth 리소스는 다음과 같습니다.

kind: TriggerAuthentication
metadata:
name: rabbitmq-auth
spec:
secretTargetRef:
- parameter: host
name: rabbitmq-connection
key: host

2026년 6월 14일에 확인한 라이브 클러스터에서는 다음을 확인했습니다.

  • rabbitmq-authlumie-worker 네임스페이스에 존재함
  • 그 status에 grading-svcreport-svc가 모두 소비자로 표시됨
  • 참조된 Secret rabbitmq-connectionlumie-worker에 존재함

소유권 경계

책임소유자
KEDA 컨트롤러 설치platform/keda/**
워크로드별 스케일링 임계값각 워크로드의 ScaledObject 매니페스트
큐 트리거가 사용하는 RabbitMQ host 자격 증명lumie-worker의 공유 rabbitmq-authrabbitmq-connection Secret

계약 드리프트

검사한 저장소와 라이브 상태는 완전히 일치하지 않습니다.

소스주장
applications/lumie/worker/grading-svc/kustomization.yamlmanifests/trigger-auth.yaml 포함
applications/lumie/worker/report-svc/kustomization.yamlreport-svcrabbitmq-auth를 참조하지만 자체 TriggerAuthentication은 포함하지 않음
2026년 6월 14일 라이브 클러스터rabbitmq-auth.status.scaledobjectsgrading-svcreport-svc가 모두 포함됨
검사한 저장소 트리lumie-worker/rabbitmq-connection Secret의 Git 관리 소스를 찾지 못함

현재는 rabbitmq-auth를 공유 큐 스케일링 의존성으로 취급하고, 소스가 추가되거나 문서화되기 전까지 rabbitmq-connection Secret이 lumie-infra에 완전히 선언되어 있다고 가정하지 마세요.

검증

cd lumie-infra
rg -n "kind: ScaledObject|TriggerAuthentication|rabbitmq-auth|queueName|metricType: Utilization" \
platform/keda applications/lumie
kubectl get scaledobject,triggerauthentication -A
kubectl get triggerauthentication rabbitmq-auth -n lumie-worker -o yaml