Files
service-catalog/doc/define-chart-resources.md
T
2026-01-20 10:46:31 +09:00

59 KiB

전체 차트 리소스 정의

개요

DIP 카탈로그의 모든 35개 Helm 차트에 대한 상세한 리소스 요구사항을 정리한 완전한 가이드입니다. 각 차트별로 Small, Medium, Large 티어의 CPU, 메모리, 볼륨 할당량을 제공합니다.


1. airflow

Apache Airflow - 워크플로우 오케스트레이션

컴포넌트 Small Medium Large
Scheduler 250m/512Mi → 1000m/1Gi 500m/1Gi → 2000m/2Gi 1000m/2Gi → 4000m/4Gi
Workers 500m/1Gi → 2000m/2Gi 1000m/2Gi → 4000m/4Gi 2000m/4Gi → 8000m/8Gi
Webserver 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
Redis 100m/128Mi → 200m/256Mi 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi
PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
PostgreSQL Data 10Gi 50Gi 200Gi
Redis Data 1Gi 5Gi 20Gi
Logs Volume 5Gi 20Gi 100Gi
DAGs Volume 1Gi 5Gi 20Gi

권장 사용 시나리오:

  • Small: 개발/테스트, 소규모 워크플로우 (< 10 DAGs)
  • Medium: 스테이징, 중간 규모 워크플로우 (10-50 DAGs)
  • Large: 프로덕션, 대규모 워크플로우 (50+ DAGs)

custom-values.yaml 설정

worker:
  resources: {}
  #  limits:
  #   cpu: 100m
  #   memory: 128Mi
  #  requests:
  #   cpu: 100m
  #   memory: 128Mi
scheduler:
  replicas: 1
  resources: {}
  #  limits:
  #   cpu: 100m
  #   memory: 128Mi
  #  requests:
  #   cpu: 100m
  #   memory: 128Mi
webserver:
  replicas: 1
  resources: {}
  #   limits:
  #     cpu: 100m
  #     memory: 128Mi
  #   requests:
  #     cpu: 100m
  #     memory: 128Mi

dags:
  persistence:
    enabled: true
    size: 5Gi
    storageClassName: "longhorn"

logs:
  persistence:
    enabled: true
    size: 5Gi
    storageClassName: longhorn
redis:
  persistence:
    # Enable persistent volumes
    enabled: true
    size: 1Gi
    storageClassName: "longhorn"
  resources: {}
  #  limits:
  #   cpu: 100m
  #   memory: 128Mi
  #  requests:
  #   cpu: 100m
  #   memory: 128Mi
postgresql:
  primary:
    persistence:
      enabled: true
      size: 8Gi                 # airflow에서 사용하는 DB의 볼륨 사이즈 설정
      storageClass: "longhorn"
    resources: {}
      # limits: 
      #   memory: 512Mi
      #   cpu: 500m
      # requests:
      #   memory: 256Mi
      #   cpu: 250m

2. argo-cd

ArgoCD - GitOps 지속적 배포

컴포넌트 Small Medium Large
Server 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
Controller 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Repo Server 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
Redis 100m/128Mi → 200m/256Mi 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi
Dex 50m/96Mi → 100m/144Mi 100m/144Mi → 200m/256Mi 200m/256Mi → 500m/512Mi
ApplicationSet Controller 100m/128Mi → 200m/256Mi 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi
Notifications 100m/128Mi → 200m/256Mi 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi

볼륨 사이즈 권장사항: 필요 사항인지 검토 필요

  • 현재 배포 시 볼륨 없이 배포.
    컴포넌트 Small Medium Large
    Redis Data 1Gi 5Gi 20Gi
    Repository Cache 2Gi 10Gi 50Gi

권장 사용 시나리오:

  • Small: 개발팀, 소규모 애플리케이션 (< 20개)
  • Medium: 중간 규모 조직 (20-100개 애플리케이션)
  • Large: 대규모 엔터프라이즈 (100+ 애플리케이션)

custom-values.yaml 설정

controller:
  resources: {}
  #  limits:
  #    cpu: 500m
  #    memory: 512Mi
  #  requests:
  #    cpu: 250m
  #    memory: 256Mi
dex:
  resources: {}
  #  requests:
  #    cpu: 5m
  #    memory: 96Mi
  #  limits:
  #    cpu: 10m
  #    memory: 144Mi
redis:
  resources: {}
  #  limits:
  #    cpu: 200m
  #    memory: 128Mi
  #  requests:
  #    cpu: 100m
  #    memory: 64Mi
server:
  resources: {}
  #  limits:
  #    cpu: 100m
  #    memory: 128Mi
  #  requests:
  #    cpu: 50m
  #    memory: 64Mi
repoServer:
  resources: {}
  #  limits:
  #    cpu: 50m
  #    memory: 128Mi
  #  requests:
  #    cpu: 10m
  #    memory: 64Mi
applicationSet:
  resources: {}
    # limits:
    #   cpu: 100m
    #   memory: 128Mi
    # requests:
    #   cpu: 100m
    #   memory: 128Mi
notifications:
  resources: {}
    # limits:
    #   cpu: 100m
    #   memory: 128Mi
    # requests:
    #   cpu: 100m
    #   memory: 128Mi

3. cert-manager

인증서 관리

컴포넌트 Small Medium Large
Controller 100m/256Mi → 250m/512Mi 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi
Webhook 50m/128Mi → 100m/256Mi 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi
CA Injector 50m/128Mi → 100m/256Mi 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Certificate Storage 1Gi 2Gi 5Gi

권장 사용 시나리오:

  • Small: 소규모 클러스터 (< 50개 인증서)
  • Medium: 중간 규모 클러스터 (50-200개 인증서)
  • Large: 대규모 클러스터 (200+ 인증서)

custom-values.yaml 설정

# controller 리소스 설정
resources: {}
#  requests:
#    cpu: 10m
#    memory: 32Mi
webhook:
  resources: {}
  #  requests:
  #    cpu: 10m
  #    memory: 32Mi
cainjector:
  resources: {}
  #  requests:
  #    cpu: 10m
  #    memory: 32Mi

4. dnsup

DNS 업데이트 유틸리티

컴포넌트 Small Medium Large
DNS Updater 10m/32Mi → 20m/128Mi 20m/64Mi → 50m/256Mi 50m/128Mi → 100m/512Mi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Config Storage 100Mi 500Mi 1Gi

권장 사용 시나리오:

  • Small: 단일 도메인 관리
  • Medium: 다중 도메인 관리
  • Large: 대규모 DNS 레코드 관리

custom-values.yaml 설정

resources: {}
#  requests:
#    cpu: 10m
#    memory: 32Mi
#  limits:
#    cpu: 20m
#    memory: 64Mi

5. flowise

AI 워크플로우 빌더

컴포넌트 Small Medium Large
API Server 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Database 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Database Data 5Gi 20Gi 100Gi
Flow Storage 2Gi 10Gi 50Gi

권장 사용 시나리오:

  • Small: 개발/프로토타이핑
  • Medium: 소규모 프로덕션
  • Large: 대규모 AI 워크플로우

custom-values.yaml 설정

resources: {}
  # requests:
  #   cpu: 500m
  #   memory: 1Gi
  # limits:
  #   cpu: 1000m
  #   memory: 2Gi
persistence:
  enabled: true
  size: 2Gi
  storageClass: longhorn
worker:
  resources: {}
    # requests:
    #   cpu: 100m
    #   memory: 128Mi
    # limits:
    #   cpu: 100m
    #   memory: 128Mi
postgresql:
  enabled: true
  primary:
    persistence:
      enabled: true
      storageClass: "longhorn"
      size: 5Gi
    resources: {}
      # limits: 
      #   memory: 512Mi
      #   cpu: 500m
      # requests:
      #   memory: 256Mi
      #   cpu: 250m

6. gitea

Git 서버

컴포넌트 Small Medium Large
Gitea 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Git Repositories 10Gi 100Gi 500Gi
PostgreSQL Data 5Gi 20Gi 100Gi

권장 사용 시나리오:

  • Small: 개인/소규모 팀 (< 10 사용자)
  • Medium: 중간 규모 팀 (10-50 사용자)
  • Large: 대규모 조직 (50+ 사용자)

custom-values.yaml 설정

resources: {}
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi
persistence:
  size: 10Gi
  storageClass: "longhorn"

postgresql:
  persistence:
    size: 5Gi
  resources:
    requests:
      memory: 256Mi
      cpu: 250m

7. harbor

컨테이너 레지스트리

컴포넌트 Small Medium Large
Core 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Registry 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Portal 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
JobService 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Database 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Redis 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
Trivy 200m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi 2000m/2Gi → 4000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Registry Storage 50Gi 500Gi 2Ti
Database Data 10Gi 50Gi 200Gi
Redis Data 1Gi 5Gi 20Gi
Trivy Cache 5Gi 20Gi 100Gi

권장 사용 시나리오:

  • Small: 개발팀 (< 100 이미지)
  • Medium: 중간 규모 조직 (100-1000 이미지)
  • Large: 엔터프라이즈 (1000+ 이미지)

custom-values.yaml 설정

portal:
  resources: {}
    # requests:
    #   memory: 256Mi
    #   cpu: 100m
core:
  resources: {}
  #  requests:
  #    memory: 256Mi
  #    cpu: 100m
jobservice:
  # resources:
  #   requests:
  #     memory: 256Mi
  #     cpu: 100m
registry:
  registry:
    resources:
      requests:
        memory: 256Mi
        cpu: 100m
  controller:
    resources:
      requests:
        memory: 256Mi
        cpu: 100m
trivy:
  resources:
    requests:
      cpu: 200m
      memory: 512Mi
    limits:
      cpu: 1
      memory: 1Gi
database:
  shmSizeLimit: 512Mi
  # resources:
    #  requests:
    #    memory: 256Mi
    #    cpu: 100m

8. kafka (사용 안함)

분산 스트리밍 플랫폼

컴포넌트 Small Medium Large
Kafka Brokers 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi
Zookeeper 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Kafka Data 20Gi 200Gi 1Ti
Kafka Logs 10Gi 50Gi 200Gi
Zookeeper Data 5Gi 20Gi 100Gi

권장 사용 시나리오:

  • Small: 개발/테스트 (< 10 토픽)
  • Medium: 중간 처리량 (10-100 토픽)
  • Large: 고처리량 (100+ 토픽)

9. kafka-ui

Kafka 관리 UI

컴포넌트 Small Medium Large
UI Server 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

권장 사용 시나리오:

  • Small: 소규모 Kafka 클러스터 모니터링
  • Medium: 중간 규모 클러스터 관리
  • Large: 대규모 클러스터 관리

custom-values.yaml 설정

resources: {}
  # limits:
  #   cpu: 200m
  #   memory: 512Mi
  # requests:
  #   cpu: 200m
  #   memory: 256Mi

10. keycloak

인증 및 권한 관리

컴포넌트 Small Medium Large
Keycloak 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
PostgreSQL Data 5Gi 20Gi 100Gi

권장 사용 시나리오:

  • Small: 소규모 조직 (< 100 사용자)
  • Medium: 중간 규모 조직 (100-1000 사용자)
  • Large: 대규모 엔터프라이즈 (1000+ 사용자)

custom-values.yaml 설정

resources: {}
  # requests:
  #   cpu: "500m"
  #   memory: "1024Mi"
  # limits:
  #   cpu: "500m"
  #   memory: "1024Mi"

# 내부 postgresql 사용시 설정
postgresql:
  persistence:
    enabled: true
      size: 5Gi                 # airflow에서 사용하는 DB의 볼륨 사이즈 설정
      storageClass: "longhorn"
  resources: {}
    # limits: 
    #   memory: 512Mi
    #   cpu: 500m
    # requests:
    #   memory: 256Mi
    #   cpu: 250m

11. kong

API 게이트웨이

컴포넌트 Small Medium Large
Kong Proxy 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Kong Ingress Controller 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
PostgreSQL Data 5Gi 20Gi 100Gi

권장 사용 시나리오:

  • Small: 소규모 API (< 10 서비스)
  • Medium: 중간 규모 API (10-50 서비스)
  • Large: 대규모 마이크로서비스 (50+ 서비스)

custom-values.yaml 설정


# proxy 서버 자원 설정(initContainer도 설정을 공유)
resources: {}
  # limits:
  #  cpu: 1
  #  memory: 2G
  # requests:
  #  cpu: 1
  #  memory: 2G

ingressController:
  resources: {}
  # Example reasonable setting for "resources":
  # resources:
  #   limits:
  #     cpu: 100m
  #     memory: 256Mi
  #   requests:
  #     cpu: 50m
  #     memory: 128Mi

postgresql:
  resources: {}
    # limits: 
    #   memory: 512Mi
    #   cpu: 500m
    # requests:
    #   memory: 256Mi
    #   cpu: 250m

12. kserve

ML 모델 서빙

컴포넌트 Small Medium Large
Inference Service 2000m/4Gi + 1GPU → 4000m/8Gi + 1GPU 4000m/8Gi + 1GPU → 8000m/16Gi + 2GPU 8000m/16Gi + 2GPU → 16000m/32Gi + 4GPU

권장 사용 시나리오:

  • Small: 소형 모델 서빙
  • Medium: 중간 규모 모델 서빙
  • Large: 대형 모델 또는 고처리량 서빙

custom-values.yaml 설정

inferenceService:
  resources:
    limits:
      cpu: "8"
      memory: 16Gi
      nvidia.com/gpu: "1"
    requests:
      cpu: "4"
      memory: 8Gi
      nvidia.com/gpu: "1"

13. kubeflow : kustomize 배포, 추가 검토 필요

ML 플랫폼

컴포넌트 Small Medium Large
Central Dashboard 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Jupyter Controller 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi
Katib Controller 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi
Pipeline 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi 8000m/16Gi → 16000m/32Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Pipeline Storage 20Gi 100Gi 500Gi
Notebook Storage 10Gi 50Gi 200Gi
Artifacts 10Gi 100Gi 500Gi

권장 사용 시나리오:

  • Small: 개발/실험 환경
  • Medium: 소규모 ML 팀
  • Large: 대규모 ML 조직

14. kyverno

정책 엔진

컴포넌트 Small Medium Large
Admission Controller 200m/512Mi → 500m/1Gi 500m/1Gi → 800m/1.5Gi 1000m/2Gi → 2000m/4Gi
Background Controller 200m/512Mi → 400m/1Gi 400m/1Gi → 700m/1.5Gi 1000m/2Gi → 1500m/3Gi
Cleanup Controller 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi
Reports Controller 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi

권장 사용 시나리오:

  • Small: 소규모 클러스터 (< 50 정책)
  • Medium: 중간 규모 클러스터 (50-200 정책)
  • Large: 대규모 클러스터 (200+ 정책)

custom-values.yaml 설정

admissionController:
  container:
    resources:
      # -- Pod resource limits
      limits:
        memory: 384Mi
      # -- Pod resource requests
      requests:
        cpu: 100m
        memory: 128Mi
backgroundController:
  resources:
    # -- Pod resource limits
    limits:
      memory: 128Mi
    # -- Pod resource requests
    requests:
      cpu: 100m
      memory: 64Mi
cleanupController:
  resources:
    # -- Pod resource limits
    limits:
      memory: 128Mi
    # -- Pod resource requests
    requests:
      cpu: 100m
      memory: 64Mi

reportsController:
  resources:
    # -- Pod resource limits
    limits:
      memory: 128Mi
    # -- Pod resource requests
    requests:
      cpu: 100m
      memory: 64Mi

15. langflow-ide

AI 워크플로우 IDE

컴포넌트 Small Medium Large
Frontend 300m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
Backend 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
PostgreSQL Data 5Gi 20Gi 100Gi
Backend Storage 10Gi 50Gi 200Gi
Flow Files 2Gi 10Gi 50Gi

권장 사용 시나리오:

  • Small: 개인 개발자
  • Medium: 소규모 팀
  • Large: 대규모 AI 개발팀

custom-values.yaml 설정

langflow:
  backend:
    resources:
      requests:
        cpu: 0.5
        memory: 1Gi
      # limits:
      #   cpu: 0.5
      #   memory: 1Gi
  frontend:
    resources:
      requests:
        cpu: 0.3
        memory: 512Mi
      # limits:
      #   cpu: 0.3
      #   memory: 512Mi
postgresql:
  primary:
    persistence:
      size: 5Gi
      storageClass: "longhorn"
    resources: {}
      # limits: 
      #   memory: 512Mi
      #   cpu: 500m
      # requests:
      #   memory: 256Mi
      #   cpu: 250m

16. langfuse

LLM 추적 및 분석

컴포넌트 Small Medium Large
Web Server 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Worker 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
Valkey (Redis) 100m/128Mi → 200m/256Mi 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi
ClickHouse 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
ZooKeeper 250m/512Gi → 375m/384Mi 500m/512Mi → 750m/768Mi 2000m/4Gi → 4000m/8Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
PostgreSQL Data 10Gi 50Gi 200Gi
Valkey Data 8Gi 20Gi 100Gi
ClickHouse Data 8Gi 50Gi 500Gi

권장 사용 시나리오:

  • Small: 소규모 LLM 애플리케이션
  • Medium: 중간 규모 추적
  • Large: 대규모 LLM 서비스

custom-values.yaml 설정

langfuse:
  web:
    resources: {}
  worker:
    resources: {}

# Valkey (Redis) 설정 - 기본값 참조
redis:
  primary:
    resources: {}
    persistence:
      enabled: true
      size: 8Gi  # 기본값
      storageClass: ""

postgresql:
  primary:
    persistence:
      enabled: true
      storageClass: "longhorn"
      size: 10Gi
    resources: {}
    


# ClickHouse 설정 - 기본값 참조
clickhouse:
  resources: {}
  persistence:
    enabled: true
    size: 8Gi  # 기본값
    storageClass: ""
  # Zookeeper 설정 (ClickHouse 클러스터링용)
  zookeeper:
    enabled: true
    resources: {}

참고) langfuse 자원 설정

  • langfuse 차트에서는 resoucePreset을 사용하여 자원을 설정.
  • resource를 설정 시 Preset은 무시됨.
{{- $presets := dict 
  "nano" (dict 
      "requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
      "limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
   )
  "micro" (dict 
      "requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
      "limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
   )
  "small" (dict 
      "requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
      "limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
   )
  "medium" (dict 
      "requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
      "limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
   )
  "large" (dict 
      "requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
      "limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
   )
  "xlarge" (dict 
      "requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
      "limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
   )
  "2xlarge" (dict 
      "requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
      "limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
   )
 }}

17. litellm

LLM 프록시

컴포넌트 Small Medium Large
Proxy Server 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Database 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Database Data 5Gi 20Gi 100Gi

권장 사용 시나리오:

  • Small: 개발/테스트
  • Medium: 소규모 프로덕션
  • Large: 고처리량 프록시

custom-values.yaml 설정

resources: {}

postgresql:
  primary:
    resources: {}
    persistence:
      storageClass: ""
      size: 5Gi

18. mlflow

ML 실험 추적

컴포넌트 Small Medium Large
Tracking Server 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Run Container 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
MinIO 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
PostgreSQL Data 5Gi 20Gi 100Gi
MinIO Storage 20Gi 200Gi 1Ti
Artifacts 10Gi 100Gi 500Gi

권장 사용 시나리오:

  • Small: 개인 연구자
  • Medium: 소규모 ML 팀
  • Large: 대규모 ML 조직

custom-values.yaml 설정

tracking:
  resources: {}
run:
  resources: {}

postgresql:
  primary:
    resources: {}
    persistence:
      storageClass: ""
      size: 5Gi

19. model-registry : kustomize 배포, kubeflow 최신 버전에 이미 통합

ML 모델 레지스트리

컴포넌트 Small Medium Large
Registry Server 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi
Database 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Model Storage 50Gi 500Gi 2Ti
Database Data 10Gi 50Gi 200Gi

권장 사용 시나리오:

  • Small: 소규모 모델 관리
  • Medium: 중간 규모 모델 레지스트리
  • Large: 엔터프라이즈 모델 관리

20. nemo

NVIDIA NeMo 마이크로서비스 플랫폼

컴포넌트 Small Medium Large
Data Store 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
Data Store PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
Customizer 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi
Customizer PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
Evaluator 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi
Evaluator PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
Evaluator Milvus 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Argo Workflows Server 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
Argo Workflows Controller 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Guardrails 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Entity Store 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Entity Store PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
NeMo Operator - Manager 512m/1Gi → 1024m/2Gi 1024m/2Gi → 2048m/4Gi 2048m/4Gi → 4096m/8Gi
NeMo Operator - Kube RBAC Proxy 5m/64Mi → 500m/128Mi 100m/128Mi → 250m/256Mi 250m/256Mi → 500m/512Mi
NIM Operator 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
Deployment Management 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
NIM Proxy 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Volcano Scheduler 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
Volcano Controller 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
Volcano Admission 100m/128Mi → 300m/300Mi 300m/300Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Data Store Storage 1Gi 10Gi 100Gi
Data Store PostgreSQL 1Gi 10Gi 100Gi
Customizer Models Storage 20Gi 100Gi 500Gi
Customizer Training PVC 10Gi 50Gi 200Gi
Customizer PostgreSQL 5Gi 20Gi 100Gi
Evaluator PostgreSQL 5Gi 20Gi 100Gi
Evaluator Milvus 10Gi 50Gi 200Gi
Entity Store PostgreSQL 5Gi 20Gi 100Gi
NIM Model Storage (선택적) 50Gi 200Gi 1Ti

권장 사용 시나리오:

  • Small: 개발/테스트 환경, 소규모 AI 워크플로우
  • Medium: 스테이징 환경, 중간 규모 모델 개발
  • Large: 프로덕션 환경, 대규모 AI/ML 파이프라인

custom-values.yaml 설정

# 기본 설정 (현재 custom-values.yaml 기반)
data-store:
  enabled: true
  persistence:
    enabled: true
    size: 1Gi  # 기본값
    storageClass: ""
  resources: {} # 기본값 사용
  postgresql:
    primary:
      persistence:
        storageClass: "longhorn"
        size: 1Gi
      resources: {}

customizer:
  enabled: true
  modelsStorage:
    enabled: true
    size: 20Gi  # 기본값
    storageClassName: ""
  postgresql:
    primary:
      persistence:
        storageClass: "longhorn"
        size: 5Gi
      resources: {}

evaluator:
  enabled: true
  argoWorkflows:
    enabled: true
    crds:
      install: false  # DIP 환경에서는 ArgoCD가 선행 설치됨
  resources: {}
  argoWorkflows:
    controller:
      resources: {}
    server:
      resources: {}
  milvus:
    standalone:
      resources: {}
      persistence:
        persistentVolumeClaim:
          storageClass: ""
          size: 10Gi
  postgresql:
    primary:
      persistence:
        storageClass: "longhorn"
        size: 5Gi
      resources: {}

guardrails:
  enabled: true
  resources: {} 

entity-store:
  enabled: true
  postgresql:
    primary:
      persistence:
        storageClass: "longhorn"
        size: 5Gi
      resources: {}

nemo-operator:
  enabled: true
  controllerManager:
    kubeRbacProxy:
      resources:
        requests:
          cpu: 5m
          memory: 64Mi
        limits:
          cpu: 500m
          memory: 128Mi
    manager:
      resources:
        requests:
          cpu: 512m
          memory: 1Gi
        limits:
          cpu: 1024m
          memory: 2Gi

nim-operator:
  enabled: true
  operator:
    resources:
      limits:
        cpu: "1"
        memory: 256Mi
      requests:
        cpu: 500m
        memory: 128Mi

deployment-management:
  enabled: true
  resources: {} 

nim-proxy:
  enabled: true
  resources: {} 

volcano:
  enabled: true
  custom:
    admission_enable: true
    admission_replicas: 1
    controller_enable: true
    controller_replicas: 1
    scheduler_enable: true
    scheduler_replicas: 1
    admission_resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 300m
        memory: 300Mi
    scheduler_resources:
      requests:
        cpu: 200m
        memory: 256Mi
      limits:
        cpu: 500m
        memory: 512Mi
    controller_resources:
      requests:
        cpu: 200m
        memory: 256Mi
      limits:
        cpu: 500m
        memory: 512Mi

21. nim

NVIDIA Inference Microservice

컴포넌트 Small Medium Large
Inference Server 4000m/8Gi + 1GPU → 8000m/16Gi + 1GPU 8000m/16Gi + 2GPU → 16000m/32Gi + 2GPU 16000m/32Gi + 4GPU → 32000m/64Gi + 4GPU

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Model Storage 20Gi 100Gi 500Gi

권장 사용 시나리오:

  • Small: 소형 모델 추론
  • Medium: 중간 처리량 추론
  • Large: 고처리량 추론

custom-values.yaml 설정

nimService:
  resources:
    requests:
      cpu: 4
      memory: 8Gi
      nvidia.com/gpu: 1
    limits:
      cpu: 8
      memory: 16Gi
      nvidia.com/gpu: 1
  storage:
    pvc:
      storageClass: longhorn
      size: 20Gi
      volumeAccessMode: ReadWriteMany

22. ollama

로컬 LLM 서빙

컴포넌트 Small (CPU) Medium (GPU) Large (Multi-GPU)
Model Server 2000m/4Gi → 4000m/8Gi 4000m/8Gi + 1GPU → 8000m/16Gi + 1GPU 8000m/16Gi + 2GPU → 16000m/32Gi + 2GPU

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Model Storage 30Gi 100Gi 500Gi

권장 사용 시나리오:

  • Small: CPU 기반 소형 모델
  • Medium: GPU 기반 중간 모델
  • Large: 다중 GPU 대형 모델

custom-values.yaml 설정

persistentVolume:
  enabled: true
  size: "30Gi"
  storageClass: longhorn

resources:
  requests:
    memory: 4096Mi
    cpu: 2000m
  limits:
    memory: 8192Mi
    cpu: 4000m

23. open-webui

LLM 웹 인터페이스

컴포넌트 Small Medium Large
Web Server 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Data Storage 2Gi 10Gi 50Gi
Upload Storage 1Gi 5Gi 20Gi

권장 사용 시나리오:

  • Small: 개인 사용
  • Medium: 소규모 팀
  • Large: 대규모 사용자

custom-values.yaml 설정

resources: {}
persistence:
  enabled: true
  size: 2Gi
  accessModes:
    - ReadWriteOnce
  storageClass: ""

24. postgresql-ha

고가용성 PostgreSQL

컴포넌트 Small Medium Large
PostgreSQL (Repmgr) 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Pgpool 100m/128Mi → 200m/256Mi 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Primary Data 20Gi 100Gi 500Gi
Replica Data 20Gi 100Gi 500Gi
WAL Archive 10Gi 50Gi 200Gi

권장 사용 시나리오:

  • Small: 소규모 애플리케이션
  • Medium: 중간 규모 데이터베이스
  • Large: 고가용성 엔터프라이즈 DB

custom-values.yaml 설정

postgresql:
  replicaCount: 3
  resources:
    requests:
      cpu: 100m
      memory: 512Mi
    limits:
      cpu: 500m
      memory: 1024Mi

pgpool:
  resources: {}
  #  requests:
  #    cpu: 100m
  #    memory: 128Mi
  #  limits:
  #    cpu: 200m
  #    memory: 256Mi


persistence:
  enabled: true
  size: 8Gi
  storageClass: ""

volumePermissions:
  enabled: true
  podSecurityContext:
    runAsUser: 0

25. qdrant

벡터 데이터베이스

컴포넌트 Small Medium Large
Qdrant Server 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Qdrant Storage 10Gi 100Gi 1Ti

권장 사용 시나리오:

  • Small: 소규모 벡터 검색
  • Medium: 중간 규모 임베딩
  • Large: 대규모 벡터 데이터베이스

custom-values.yaml 설정

resources: {}
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi

persistence:
  accessModes: ["ReadWriteOnce"]
  size: 10Gi
  storageClassName: ""

26. ragflow

RAGFlow - AI 기반 문서 검색 및 RAG 시스템

컴포넌트 Small Medium Large
RAGFlow 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Infinity 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
MinIO 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
MySQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
Redis 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Infinity Storage 5Gi 20Gi 100Gi
MinIO Storage 5Gi 50Gi 200Gi
MySQL Storage 5Gi 20Gi 100Gi
Redis Storage 5Gi 10Gi 50Gi

권장 사용 시나리오:

  • Small: 개발/테스트, 소규모 문서 처리 (< 1000개 문서)
  • Medium: 중간 규모 RAG 시스템 (1000-10000개 문서)
  • Large: 대규모 지식 베이스 (10000+ 개 문서)

custom-values.yaml 설정

ragflow:
  deployment:
    resources: {}
      # limits:
      #   cpu: 1000m
      #   memory: 2Gi
      # requests:
      #   cpu: 500m
      #   memory: 1Gi

infinity:
  storage:
    className: "longhorn"
    capacity: 5Gi
  deployment:
    resources: {}
      # limits:
      #   cpu: 1000m
      #   memory: 2Gi
      # requests:
      #   cpu: 500m
      #   memory: 1Gi

minio:
  storage:
    className: "longhorn"
    capacity: 5Gi
  deployment:
    resources: {}
      # limits:
      #   cpu: 500m
      #   memory: 1Gi
      # requests:
      #   cpu: 200m
      #   memory: 512Mi

mysql:
  storage:
    className: "longhorn"
    capacity: 5Gi
  deployment:
    resources: {}
      # limits:
      #   cpu: 500m
      #   memory: 1Gi
      # requests:
      #   cpu: 250m
      #   memory: 512Mi

redis:
  storage:
    className: "longhorn"
    capacity: 5Gi
  deployment:
    resources: {}
      # limits:
      #   cpu: 200m
      #   memory: 512Mi
      # requests:
      #   cpu: 100m
      #   memory: 256Mi

27. rancher

Kubernetes 관리 플랫폼

컴포넌트 Small Medium Large
Rancher Server 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi

권장 사용 시나리오:

  • Small: 소규모 클러스터 관리 (< 5 클러스터)
  • Medium: 중간 규모 관리 (5-20 클러스터)
  • Large: 대규모 멀티 클러스터 (20+ 클러스터)

custom-values.yaml 설정

resources: 
  requests:
    cpu: 100m
    memory: 500Mi
  limits:
    cpu: 1000m
    memory: 1000Mi

28. rancher-monitoring

Rancher 모니터링 스택 - Prometheus Operator 기반 모니터링

컴포넌트 Small Medium Large
Prometheus 250m/100Mi → 1000m/2Gi 500m/1Gi → 2000m/4Gi 1000m/2Gi → 4000m/8Gi
Grafana 100m/100Mi → 200m/200Mi 200m/200Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi
AlertManager 100m/100Mi → 1000m/500Mi 200m/200Mi → 1500m/1Gi 500m/500Mi → 2000m/2Gi
Prometheus Operator 100m/128Mi → 200m/256Mi 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi
Node Exporter 50m/64Mi → 100m/128Mi 100m/128Mi → 200m/256Mi 200m/256Mi → 500m/512Mi
Kube State Metrics 100m/128Mi → 200m/256Mi 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Prometheus Storage 10Gi 50Gi 200Gi
Grafana Storage 1Gi 5Gi 20Gi
AlertManager Storage 1Gi 5Gi 20Gi

권장 사용 시나리오:

  • Small: 소규모 클러스터 (< 10 노드, 기본 모니터링)
  • Medium: 중간 규모 클러스터 (10-50 노드, 상세 모니터링)
  • Large: 대규모 클러스터 (50+ 노드, 멀티 클러스터 모니터링)

custom-values.yaml 설정

grafana:
  resources:
    requests:
      cpu: 100m
      memory: 100Mi
    limits:
      cpu: 200m
      memory: 200Mi

prometheusOperator:
  resources: {}

prometheus:
  prometheusSpec:
    resources:
      requests:
        cpu: 250m
        memory: 100Mi
      limits:
        cpu: 1000m
        memory: 2000Mi
    # 메트릭 수집 주기
    scrapeInterval: 1m
    # 알림 평가 주기
    evaluationInterval: 1m
    # 메트릭 보관 기간
    retention: 30d
    # 메트릭 보관 용량 (볼륨 크기보다 작게 설정)
    retentionSize: 10GB
    # Prometheus 데이터 저장소 설정
    storageSpec:
      volumeClaimTemplate:
        spec:
          accessModes:
          - ReadWriteOnce
          resources:
            requests:
              storage: 10Gi
          storageClassName: longhorn
          volumeMode: Filesystem

alertmanager:
  alertmanagerSpec:
    resources:
      requests:
        cpu: 100m
        memory: 100Mi
      limits:
        cpu: 1000m
        memory: 500Mi

nodeExporter:
  resources: {}
 
kube-state-metrics:
  resources: {}

29. rancher-monitoring-crd : crd만 배포

Rancher 모니터링 CRD


30. spark-operator

Apache Spark Operator - Kubernetes에서 Spark 애플리케이션 관리

컴포넌트 Small Medium Large
Controller 100m/300Mi → 200m/512Mi 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi
Webhook 50m/128Mi → 100m/256Mi 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Spark Event Logs 5Gi 20Gi 100Gi
Spark History Server 10Gi 50Gi 200Gi

권장 사용 시나리오:

  • Small: 개발/테스트 환경 (< 10개 동시 Spark 작업)
  • Medium: 스테이징/중간 규모 (10-50개 동시 Spark 작업)
  • Large: 프로덕션/대규모 환경 (50+ 개 동시 Spark 작업)

custom-values.yaml 설정

controller:
  resources: {}
    # limits:
    #   cpu: 200m
    #   memory: 512Mi
    # requests:
    #   cpu: 100m
    #   memory: 300Mi

webhook:
  resources: {}
    # limits:
    #   cpu: 100m
    #   memory: 256Mi
    # requests:
    #   cpu: 50m
    #   memory: 128Mi

31. starrocks

실시간 분석 데이터베이스

컴포넌트 Small Medium Large
Frontend (FE) 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi
Compute Node (CN) 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi 8000m/16Gi → 16000m/32Gi
FE Proxy 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
FE Metadata 10Gi 50Gi 200Gi
FE Logs 5Gi 20Gi 100Gi
CN Data 100Gi 1Ti 10Ti
CN Logs 20Gi 100Gi 500Gi
CN Spill 10Gi 50Gi 200Gi

권장 사용 시나리오:

  • Small: 소규모 분석 워크로드 (< 1TB 데이터)
  • Medium: 중간 규모 실시간 분석 (1-10TB 데이터)
  • Large: 대규모 데이터 웨어하우스 (10TB+ 데이터)

아키텍처별 배포:

  • Shared-Nothing: FE + BE (전통적 아키텍처)
  • Shared-Data: FE + CN + 외부 스토리지 (클라우드 네이티브)

custom-values.yaml 설정

# Shared-Data 아키텍처 (권장)
starrocksCluster:
  enabledBe: false
  enabledCn: true

starrocksFESpec:
  replicas: 3
  resources:
    requests:
      cpu: 1000m
      memory: 2Gi
    limits:
      cpu: 2000m
      memory: 4Gi
  storageSpec:
    name: fe
    storageClassName: "longhorn"
    storageSize: 10Gi
    logStorageSize: 5Gi

starrocksCnSpec:
  replicas: 3
  resources:
    requests:
      cpu: 2000m
      memory: 4Gi
    limits:
      cpu: 4000m
      memory: 8Gi
  storageSpec:
    name: cn
    storageClassName: "longhorn"
    storageSize: 100Gi      # default: 1Ti
    logStorageSize: 20Gi    # default: 20Gi
    spillStorageSize: 10Gi  # default: 0Gi
  autoScalingPolicy:
    minReplicas: 1
    maxReplicas: 10

starrocksFeProxySpec:
  enabled: true
  resources:
    requests:
      cpu: 500m
      memory: 1Gi
    limits:
      cpu: 1000m
      memory: 2Gi
  resolver: "rke2-coredns-rke2-coredns.kube-system.svc.cluster.local"

32. starrocks-operator

StarRocks Operator

컴포넌트 Small Medium Large
Operator 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi

권장 사용 시나리오:

  • Small: 소규모 StarRocks 클러스터 관리
  • Medium: 중간 규모 클러스터 운영
  • Large: 대규모 StarRocks 환경

custom-values.yaml 설정

starrocksOperator:
  resources:
    limits:
      cpu: 500m
      memory: 800Mi
    requests:
      cpu: 500m
      memory: 400Mi

33. strimzi-kafka-operator

Kafka Operator

컴포넌트 Small Medium Large
Cluster Operator 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi

권장 사용 시나리오:

  • Small: 소규모 Kafka 클러스터
  • Medium: 중간 규모 스트리밍
  • Large: 대규모 이벤트 스트리밍

custom-values.yaml 설정

resources:
  limits:
    memory: 384Mi
    cpu: 1000m
  requests:
    memory: 384Mi

34. superset

BI 대시보드 플랫폼

컴포넌트 Small Medium Large
Superset Node 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Superset Worker 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Celery Beat 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi
Celery Flower 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi
PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
Redis 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
PostgreSQL Data 8Gi 50Gi 200Gi
Redis Data 8Gi 20Gi 100Gi

권장 사용 시나리오:

  • Small: 소규모 대시보드 (< 50 사용자, < 100 차트)
  • Medium: 중간 규모 BI (50-200 사용자, 100-500 차트)
  • Large: 엔터프라이즈 BI (200+ 사용자, 500+ 차트)

컴포넌트별 역할:

  • Superset Node: 웹 서버, 사용자 인터페이스 제공
  • Superset Worker: 비동기 쿼리 처리, 대시보드 렌더링
  • Celery Beat: 스케줄된 작업 관리 (리포트, 알림)
  • Celery Flower: Celery 작업 모니터링 UI

custom-values.yaml 설정

# 전역 리소스 설정 (모든 컴포넌트 기본값)
resources: {}
  # requests:
  #   cpu: 100m
  #   memory: 128Mi
  # limits:
  #   cpu: 200m
  #   memory: 256Mi

# Superset 웹 서버 설정
supersetNode:
  replicas:
    enabled: true
    replicaCount: 1
  resources: {}
    # requests:
    #   cpu: 500m
    #   memory: 1Gi
    # limits:
    #   cpu: 1000m
    #   memory: 2Gi

# Superset Celery Worker 설정
supersetWorker:
  resources: {}
    # requests:
    #   cpu: 500m
    #   memory: 1Gi
    # limits:
    #   cpu: 1000m
    #   memory: 2Gi

# Celery Beat 설정 (스케줄된 작업용)
supersetCeleryBeat:
  enabled: false  # 필요시 true로 변경
  resources: {}
    # requests:
    #   cpu: 100m
    #   memory: 256Mi
    # limits:
    #   cpu: 200m
    #   memory: 512Mi

# Celery Flower 설정 (작업 모니터링 UI)
supersetCeleryFlower:
  enabled: false  # 필요시 true로 변경
  replicaCount: 1
  resources: {}
    # requests:
    #   cpu: 100m
    #   memory: 256Mi
    # limits:
    #   cpu: 200m
    #   memory: 512Mi

# PostgreSQL 설정
postgresql:
  primary:
    persistence:
      enabled: true
      storageClass: "longhorn"
      size: 8Gi
    resources: {}
      # requests:
      #   cpu: 250m
      #   memory: 512Mi
      # limits:
      #   cpu: 500m
      #   memory: 1Gi

# Redis 설정
redis:
  master:
    persistence:
      enabled: true
      storageClass: "longhorn"
      size: 8Gi
    resources: {}
      # requests:
      #   cpu: 200m
      #   memory: 256Mi
      # limits:
      #   cpu: 500m
      #   memory: 512Mi

35. unitycatalog : 사용 여부 검토 필요

데이터 카탈로그

컴포넌트 Small Medium Large
Catalog Server 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi
Postgresql 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Catalog Metadata 10Gi 100Gi 1Ti
Database Data 20Gi 200Gi 2Ti

권장 사용 시나리오:

  • Small: 소규모 데이터 자산 관리
  • Medium: 중간 규모 데이터 거버넌스
  • Large: 엔터프라이즈 데이터 카탈로그

custom-values.yaml 설정

server:
  config:
    persistence:
      enabled: true
      accessModes: [ "ReadWriteOnce" ]
      size: 100Mi
      storageClassName: "longhorn"
  statefulset:
    resources: {}
postgresql:
  primary:
    persistence:
      storageClassName: "longhorn"
      size: 5Gi
    resources: {}

36. vllm

고성능 LLM 추론

컴포넌트 Small (7B) Medium (13B-30B) Large (70B+)
Inference Server 4000m/16Gi + 1GPU → 8000m/32Gi + 1GPU 8000m/32Gi + 2GPU → 16000m/64Gi + 2GPU 16000m/64Gi + 4GPU → 32000m/128Gi + 4GPU

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Model Storage 50Gi 200Gi 1Ti
Cache Volume 20Gi 100Gi 500Gi

권장 사용 시나리오:

  • Small: 7B 모델 (Llama2-7B, Mistral-7B)
  • Medium: 13B-30B 모델 (Llama2-13B, CodeLlama-34B)
  • Large: 70B+ 모델 (Llama2-70B, GPT-3.5 급)

custom-values.yaml 설정

servingEngineSpec:
  modelSpec:
    - name: "qwen"
      repository: "vllm/vllm-openai"
      tag: "latest"
      modelURL: "Qwen/Qwen2.5-Coder-14B-Instruct"
      replicaCount: 1

      requestCPU: 16
      requestMemory: "32Gi"
      requestGPU: 1
      pvcStorage: "10Gi"
      pvcAccessMode:
        - ReadWriteMany # 공유 볼륨 사용 시 필우
      storageClass: "nfs"

routerSpec:
  resources:
    requests:
      cpu: "2"
      memory: "8G"
    limits:
      cpu: "4"
      memory: "16G"

Operator 기반 리소스 정의

Kafka Cluster (Strimzi Operator 사용)

Apache Kafka 클러스터 - 분산 스트리밍 플랫폼

컴포넌트 Small Medium Large
Controller 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
Broker 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi 4000m/8Gi → 8000m/16Gi
Topic Operator 100m/128Mi → 200m/256Mi 250m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi
User Operator 100m/128Mi → 200m/256Mi 250m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Controller Storage 5Gi 10Gi 20Gi
Broker Storage 20Gi 50Gi 100Gi

권장 사용 시나리오:

  • Small: 개발/테스트 환경 (< 10 토픽)
  • Medium: 중간 처리량 (10-100 토픽)
  • Large: 고처리량 프로덕션 (100+ 토픽)

Kafka CR 설정 예시

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaNodePool
metadata:
  name: controller
spec:
...
  resources:
    requests:
      cpu: 500m
      memory: 1Gi
    limits:
      cpu: 1
      memory: 2Gi
  storage:
    type: jbod
    volumes:
      - id: 0
        type: persistent-claim
        size: 5Gi
        kraftMetadata: shared
        class: longhorn
---
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaNodePool
metadata:
  name: broker
spec:
...
  resources:
    requests:
      cpu: 500m
      memory: 1Gi
    limits:
      cpu: 1
      memory: 2Gi
  storage:
    type: jbod
    volumes:
      - id: 0
        type: persistent-claim
        size: 5Gi
        kraftMetadata: shared
        class: longhorn
---
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
...
  entityOperator:
    topicOperator:
      resources:
        requests:
          memory: 128Mi
          cpu: 100m
        limits:
          memory: 256Mi
          cpu: 200m
    userOperator:
      resources:
        requests:
          memory: 128Mi
          cpu: 100m
        limits:
          memory: 256Mi
          cpu: 200m

Kafka Connect (Strimzi Operator 사용)

Kafka 커넥터 - 데이터 파이프라인

컴포넌트 Small Medium Large
Kafka Connect 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi

권장 사용 시나리오:

  • Small: 소규모 데이터 파이프라인 (< 5 커넥터)
  • Medium: 중간 규모 데이터 통합 (5-20 커넥터)
  • Large: 대규모 데이터 스트리밍 (20+ 커넥터)

KafkaConnect CR 설정 예시

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
...
  resources:
    requests:
      cpu: 500m
      memory: 1Gi
    limits:
      cpu: 1000m
      memory: 2Gi

리소스 요약 테이블

카테고리별 리소스 분류

경량 서비스 (Small 기본)

차트 주요 용도 기본 권장 티어 볼륨 요구사항
cert-manager 인증서 관리 Small 1-5Gi
dnsup DNS 업데이트 Small 100Mi-1Gi
kafka-ui Kafka 모니터링 Small 100Mi-1Gi
open-webui LLM 웹 UI Small-Medium 3-75Gi
kyverno 정책 관리 Small-Medium 1-20Gi

중간 규모 서비스 (Medium 기본)

차트 주요 용도 기본 권장 티어 볼륨 요구사항
airflow 워크플로우 오케스트레이션 Medium 75-325Gi
argo-cd GitOps CD Medium 15-70Gi
flowise AI 워크플로우 Medium 30-150Gi
gitea Git 서버 Medium 130-650Gi
keycloak 인증 서버 Medium 22-105Gi
kong API 게이트웨이 Medium 22-105Gi
langflow-ide AI IDE Medium 80-350Gi
langfuse LLM 추적 Medium 100-700Gi
litellm LLM 프록시 Medium 30-150Gi
mlflow ML 실험 추적 Medium 320-1.6Ti
rancher K8s 관리 Medium 70-300Gi
superset BI 대시보드 Medium 82-350Gi

대규모 서비스 (Large 기본)

차트 주요 용도 기본 권장 티어 볼륨 요구사항
harbor 컨테이너 레지스트리 Large 2.3-2.3Ti
kafka 스트리밍 플랫폼 Large 1.3Ti
postgresql-ha 고가용성 DB Medium-Large 1.2Ti
starrocks 분석 데이터베이스 Large 11Ti
rancher-monitoring 모니터링 스택 Large 1.15Ti
qdrant 벡터 데이터베이스 Medium-Large 1.5Ti
ragflow RAG 시스템 Medium-Large 1.72Ti
unitycatalog 데이터 카탈로그 Large 3Ti

AI/ML 특화 서비스 (GPU 필요)

차트 주요 용도 GPU 요구사항 볼륨 요구사항
kserve ML 모델 서빙 1-4 GPU 15-300Gi
kubeflow ML 플랫폼 선택적 GPU 1.2Ti
nemo NVIDIA 모델 1-4 GPU 1.5Ti
nim NVIDIA 추론 1-4 GPU 720Gi
ollama 로컬 LLM 선택적 GPU 625Gi
vllm 고성능 LLM 1-4 GPU 1.5Ti

총 리소스 요구사항 추정

전체 카탈로그 배포 시 예상 리소스 (Medium 티어 기준)

CPU 요구사항:

  • 총 Requests: ~150,000m (150 vCPU)
  • 총 Limits: ~300,000m (300 vCPU)

메모리 요구사항:

  • 총 Requests: ~300Gi
  • 총 Limits: ~600Gi

GPU 요구사항 (AI/ML 차트 포함):

  • 최소: 10-15 GPU
  • 권장: 20-30 GPU

스토리지 요구사항:

  • 데이터베이스: ~2Ti
  • 애플리케이션 데이터: ~5Ti
  • 로그/메트릭: ~1Ti
  • 모델/아티팩트: ~10Ti
  • 총 스토리지: ~18Ti

클러스터 사이징 권장사항

소규모 환경 (개발/테스트)

  • 노드 구성: 3-5 노드
  • 노드 스펙: 8 vCPU, 32Gi RAM, 500Gi SSD
  • 총 용량: 40 vCPU, 160Gi RAM, 2.5Ti Storage
  • GPU: 선택적 (1-2개)

중간 규모 환경 (스테이징/소규모 프로덕션)

  • 노드 구성: 5-10 노드
  • 노드 스펙: 16 vCPU, 64Gi RAM, 1Ti SSD
  • 총 용량: 160 vCPU, 640Gi RAM, 10Ti Storage
  • GPU: 5-10개

대규모 환경 (엔터프라이즈 프로덕션)

  • 노드 구성: 10-20 노드
  • 노드 스펙: 32 vCPU, 128Gi RAM, 2Ti SSD
  • 총 용량: 640 vCPU, 2.5Ti RAM, 40Ti Storage
  • GPU: 20-40개

스토리지 클래스 권장사항

성능별 스토리지 분류

스토리지 타입 사용 용도 IOPS 처리량 권장 차트
High Performance SSD 데이터베이스, 고성능 워크로드 10,000+ 500MB/s+ PostgreSQL, StarRocks, Kafka
Standard SSD 일반 애플리케이션 데이터 3,000-10,000 100-500MB/s Harbor, MLflow, Gitea
Standard HDD 로그, 백업, 아카이브 500-3,000 50-100MB/s 로그 볼륨, 백업 데이터

볼륨 확장 정책

  • 자동 확장: 사용률 80% 도달 시 20% 확장
  • 최대 확장: 초기 크기의 10배까지
  • 모니터링: 볼륨 사용률 및 성능 지표 추적

볼륨 백업 및 복구 전략

백업 주기별 분류

데이터 중요도 백업 주기 보존 기간 해당 차트
Critical 매시간 30일 PostgreSQL-HA, Harbor, StarRocks
Important 매일 14일 Gitea, Keycloak, MLflow
Standard 주간 7일 Kafka, Superset, Rancher

재해 복구 계획

  • RTO (복구 시간 목표): Critical 1시간, Important 4시간, Standard 24시간
  • RPO (복구 지점 목표): Critical 15분, Important 1시간, Standard 24시간
  • 지역 간 복제: Critical 데이터는 다른 가용 영역에 실시간 복제

이 문서를 통해 DIP 카탈로그의 모든 차트에 대한 체계적인 리소스 및 볼륨 관리가 가능하며, 환경과 요구사항에 따른 적절한 할당을 통해 최적의 성능과 비용 효율성을 달성할 수 있습니다.


37. lakekeeper

Rust 네이티브 Apache Iceberg REST Catalog

컴포넌트 Small Medium Large
Lakekeeper Catalog 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi 2000m/4Gi → 4000m/8Gi
PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi
OpenFGA 200m/256Mi → 500m/512Mi 500m/512Mi → 1000m/1Gi 1000m/1Gi → 2000m/2Gi
OpenFGA PostgreSQL 250m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi 1000m/2Gi → 2000m/4Gi

볼륨 사이즈 권장사항:

컴포넌트 Small Medium Large
Lakekeeper PostgreSQL 5Gi 20Gi 100Gi
OpenFGA PostgreSQL 8Gi 30Gi 150Gi

권장 사용 시나리오:

  • Small: 개발/테스트 환경 (< 10 테이블, < 5 사용자)
  • Medium: 소규모 프로덕션 (10-100 테이블, 5-50 사용자)
  • Large: 대규모 데이터 레이크하우스 (100+ 테이블, 50+ 사용자)

custom-values.yaml 설정

catalog:
  resources: {}
  #  limits:
  #    cpu: 1000m
  #    memory: 2Gi
  #  requests:
  #    cpu: 500m
  #    memory: 1Gi

# lakekeeper DB
postgresql:
  storage:
    className: ""
    requestedSize: 5Gi
  resources: {}
  #  limits:
  #    cpu: 500m
  #    memory: 1Gi
  #  requests:
  #    cpu: 250m
  #    memory: 512Mi


openfga:
  resources: {}
  #  limits:
  #    cpu: 500m
  #    memory: 512Mi
  #  requests:
  #    cpu: 200m
  #    memory: 256Mi

  postgresql:
    primary:
      resources: {}
      #  limits:
      #    cpu: 500m
      #    memory: 1Gi
      #  requests:
      #    cpu: 250m
      #    memory: 512Mi
      persistence:
        storageClass: ""
        size: 8Gi

Apache Flink Kubernetes Operator - Kubernetes에서 Flink 애플리케이션 관리

컴포넌트 Small Medium Large
Operator Pod 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi 500m/1Gi → 1000m/2Gi
Webhook Container 50m/128Mi → 100m/256Mi 100m/256Mi → 200m/512Mi 200m/512Mi → 500m/1Gi

권장 사용 시나리오:

  • Small: 개발/테스트 환경 (< 5개 FlinkDeployment)
  • Medium: 스테이징/소규모 프로덕션 (5-20개 FlinkDeployment)
  • Large: 대규모 프로덕션 환경 (20+ FlinkDeployment)

custom-values.yaml 설정

# Operator Pod 리소스 설정
operatorPod:
  resources:
    limits:
      cpu: "200m"
      memory: "512Mi"
    requests:
      cpu: "100m"
      memory: "256Mi"
  
  # Webhook Container 리소스 설정
  webhook:
    resources:
      limits:
        cpu: "100m"
        memory: "256Mi"
      requests:
        cpu: "50m"
        memory: "128Mi"