# 전체 차트 리소스 정의 ## 개요 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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은 무시됨. ``` go {{- $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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ``` 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 설정** ```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 설정** ``` 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 설정** ```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 설정** ```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 설정** ```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 설정** ```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 설정** ```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 설정** ```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 설정** ``` 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 설정** ``` 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 설정 예시** ```yaml 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 설정 예시** ```yaml 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 설정** ``` 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 ``` --- ## 38. flink-kubernetes-operator **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 설정** ```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" ``` --- ## 39. openmetadata **OpenMetadata - 메타데이터 관리 플랫폼** | 컴포넌트 | Small | Medium | Large | |----------|-------|--------|-------| | **OpenMetadata Server** | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | **권장 사용 시나리오:** - Small: 개발/테스트 환경 (소규모 메타데이터, 소수 사용자) - Medium: 스테이징/소규모 프로덕션 (중간 규모 메타데이터, 수십 명 사용자) - Large: 대규모 프로덕션 (대용량 메타데이터, 수백 명 사용자) **custom-values.yaml 설정** ```yaml resources: limits: cpu: "1000m" memory: "2Gi" requests: cpu: "500m" memory: "1Gi" ``` --- ## 40. openmetadata-dependencies **OpenMetadata Dependencies - Airflow, MySQL, OpenSearch 포함 의존성 패키지** | 컴포넌트 | Small | Medium | Large | |----------|-------|--------|-------| | **Airflow Scheduler** | 250m/512Mi → 500m/1Gi | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | | **Airflow Workers** | 250m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi | 1000m/2Gi → 4000m/4Gi | | **Airflow Webserver** | 100m/256Mi → 500m/512Mi | 250m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi | | **Airflow API Server** | 100m/256Mi → 500m/512Mi | 250m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi | | **Airflow Triggerer** | 100m/256Mi → 300m/512Mi | 200m/512Mi → 500m/1Gi | 500m/1Gi → 1000m/2Gi | | **MySQL** | 500m/512Mi → 750m/768Mi | 500m/1Gi → 750m/1.5Gi | 1000m/2Gi → 1500m/3Gi | | **OpenSearch** | 100m/1Gi → 1000m/2Gi | 500m/2Gi → 2000m/4Gi | 1000m/4Gi → 4000m/8Gi | **볼륨 사이즈 권장사항:** | 컴포넌트 | Small | Medium | Large | |----------|-------|--------|-------| | **MySQL Data** | 20Gi | 50Gi | 200Gi | | **OpenSearch Data** | 30Gi | 100Gi | 500Gi | | **Airflow DAGs** | 1Gi | 5Gi | 20Gi | | **Airflow Logs** | 1Gi | 10Gi | 50Gi | **권장 사용 시나리오:** - Small: 개발/테스트 환경 (소규모 데이터 파이프라인, 소수 커넥터) - Medium: 스테이징/소규모 프로덕션 (중간 규모 파이프라인, 수십 개 커넥터) - Large: 대규모 프로덕션 (대용량 파이프라인, 수백 개 커넥터) **custom-values.yaml 설정** ```yaml airflow: scheduler: resources: limits: cpu: "500m" memory: "1Gi" requests: cpu: "250m" memory: "512Mi" workers: resources: limits: cpu: "1000m" memory: "1Gi" requests: cpu: "250m" memory: "512Mi" webserver: resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "100m" memory: "256Mi" apiServer: resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "100m" memory: "256Mi" triggerer: resources: limits: cpu: "300m" memory: "512Mi" requests: cpu: "100m" memory: "256Mi" dags: persistence: size: 1Gi logs: persistence: size: 1Gi mysql: primary: resources: limits: cpu: "750m" memory: "768Mi" requests: cpu: "500m" memory: "512Mi" persistence: size: 50Gi opensearch: opensearchJavaOpts: "-Xmx1g -Xms1g" resources: limits: cpu: "1000m" memory: "2048M" requests: cpu: "100m" memory: "1024M" persistence: size: 30Gi ``` ---