diff --git a/doc/change-bitnami-image.md b/doc/change-bitnami-image.md new file mode 100644 index 0000000..4810cda --- /dev/null +++ b/doc/change-bitnami-image.md @@ -0,0 +1,199 @@ +# binami 이미지 변경 + +## 개요 + + bitnami의 이미지 제공 방식이 변경되어 기존 chart를 사용하는 repository가 변경되었습다. 본 문서에는 bitnami 이미지를 사용하는 차트의 목록과 변경해야 할 `values.yaml`을 정리하였습니다. + + + ## 1. airflow +**Apache Airflow - 워크플로우 오케스트레이션** + +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | + + +``` yaml +postgresql: + image: + repository: bitnamilegacy/postgresql + tag: 16.1.0-debian-11-r15 +``` + +## 2. gitea + +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | + + +``` yaml +postgresql: + image: + repository: bitnamilegacy/postgresql + volumePermissions: + image: + repository: bitnamilegacy/bitnami-shell + metrics: + image: + repository: bitnamilegacy/postgres-exporter +``` + +## 3. keycloak + +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | + +``` yaml +postgresql: + image: + repository: bitnamilegacy/postgresql + volumePermissions: + image: + repository: bitnamilegacy/bitnami-shell + metrics: + image: + repository: bitnamilegacy/postgres-exporter +``` + +## 4. kong +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | + +``` yaml +postgresql: + image: + repository: bitnamilegacy/postgresql +``` + +## 5. langflow-ide +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | + +``` yaml +postgresql: + image: + repository: bitnamilegacy/postgresql +``` + +## 6. langfuse +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | +| **Clickhiuse** | bitnami/clickhouse | bitnamilegacy/clickhouse | +| **Valkey** | bitnami/valkey | bitnamilegacy/valkey | + +``` yaml +postgresql: + image: + repository: bitnami/postgresql +redis: + image: + repository: bitnamilegacy/valkey + +clickhouse: + image: + repository: bitnamilegacy/clickhouse +``` + +## 7. litellm + +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | + +``` yaml +postgresql: + image: + repository: bitnamilegacy/postgresql +``` + + +## 8. mlflow + +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **MLflow** | bitnami/mlflow | bitnamilegacy/mlflow | +| **Git** | bitnami/git | bitnamilegacy/git | +| **WaitContainer** | bitnami/os-shell | bitnamilegacy/os-shell | +| **Postgresql** | bitnami/postgresql | bitnamilegacy/postgresql | +| **Minio** | bitnami/minio | bitnamilegacy/minio | + +``` yaml +image: + repository: bitnamilegacy/mlflow + +gitImage: + repository: bitnamilegacy/git + +waitContainer: + image: + repository: bitnamilegacy/os-shell + +minio: + image: + repository: bitnamilegacy/postgresql + +postgresql: + image: + repository: bitnamilegacy/minio + +``` + +## 9. nemo + +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **Data Store PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | +| **Customizer PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | +| **Evaluator PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | +| **Entity Store PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | + + +``` yaml +data-store: + postgresql: + image: + repository: bitnamilegacy/postgresql +customizer: + postgresql: + image: + repository: bitnamilegacy/postgresql +evaluator: + postgresql: + image: + repository: bitnamilegacy/postgresql +entity-store: + postgresql: + image: + repository: bitnamilegacy/postgresql +``` + +## 10. postgresql-ha + +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL Primary** | bitnami/postgresql-repmgr | bitnamilegacy/postgresql | +| **pgpool** | bitnami/pgpool | bitnamilegacy/pgpool | + +``` yaml +postgresql: + image: + repository: bitnamilegacy/postgresql-repmgr +pgpool: + image: + repository: bitnamilegacy/pgpool +``` \ No newline at end of file diff --git a/doc/complete-chart-resources-with-volumes.md b/doc/complete-chart-resources-with-volumes.md new file mode 100644 index 0000000..03d8d99 --- /dev/null +++ b/doc/complete-chart-resources-with-volumes.md @@ -0,0 +1,1668 @@ + +# 전체 35개 차트 리소스 요구사항 문서 (볼륨 포함) + +## 개요 + +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 +**RAG 워크플로우** + +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **RAG Server** | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | 4000m/8Gi → 8000m/16Gi | +| **Vector DB** | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | + +**볼륨 사이즈 권장사항:** +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Document Storage** | 10Gi | 100Gi | 1Ti | +| **Vector Storage** | 5Gi | 50Gi | 500Gi | +| **Index Storage** | 2Gi | 20Gi | 200Gi | + +**권장 사용 시나리오:** +- Small: 소규모 문서 검색 +- Medium: 중간 규모 RAG 시스템 +- Large: 대규모 지식 베이스 + +**custom-values.yaml 설정** +``` yaml + +``` + +--- + +## 27. rancher +**Kubernetes 관리 플랫폼** + +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Rancher Server** | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | 4000m/8Gi → 8000m/16Gi | + +**볼륨 사이즈 권장사항:** +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Data Storage** | 10Gi | 50Gi | 200Gi | +| **Audit Logs** | 5Gi | 20Gi | 100Gi | + +**권장 사용 시나리오:** +- Small: 소규모 클러스터 관리 (< 5 클러스터) +- Medium: 중간 규모 관리 (5-20 클러스터) +- Large: 대규모 멀티 클러스터 (20+ 클러스터) + +--- + +## 28. rancher-monitoring +**Rancher 모니터링 스택** + +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Prometheus** | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | 4000m/8Gi → 8000m/16Gi | +| **Grafana** | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | +| **AlertManager** | 200m/256Mi → 500m/512Mi | 500m/512Mi → 1000m/1Gi | 1000m/1Gi → 2000m/2Gi | + +**볼륨 사이즈 권장사항:** +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Prometheus Data** | 50Gi | 200Gi | 1Ti | +| **Grafana Data** | 5Gi | 20Gi | 100Gi | +| **AlertManager Data** | 2Gi | 10Gi | 50Gi | + +**권장 사용 시나리오:** +- Small: 소규모 클러스터 모니터링 +- Medium: 중간 규모 모니터링 +- Large: 대규모 멀티 클러스터 모니터링 + +--- + +## 29. rancher-monitoring-crd : crd만 배포 +**Rancher 모니터링 CRD** + +--- + +## 30. spark-operator +**Apache Spark Operator** + +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Operator** | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | + +**볼륨 사이즈 권장사항:** +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Spark History** | 10Gi | 50Gi | 200Gi | +| **Event Logs** | 5Gi | 20Gi | 100Gi | + +**권장 사용 시나리오:** +- Small: 소규모 Spark 작업 +- Medium: 중간 규모 데이터 처리 +- Large: 대규모 빅데이터 처리 + +--- + +## 31. starrocks +**실시간 분석 데이터베이스** + +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Frontend (FE)** | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | 4000m/8Gi → 8000m/16Gi | +| **Backend (BE)** | 2000m/4Gi → 4000m/8Gi | 4000m/8Gi → 8000m/16Gi | 8000m/16Gi → 16000m/32Gi | +| **Compute Node (CN)** | 2000m/4Gi → 4000m/8Gi | 4000m/8Gi → 8000m/16Gi | 8000m/16Gi → 16000m/32Gi | + +**볼륨 사이즈 권장사항:** +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **FE Metadata** | 10Gi | 50Gi | 200Gi | +| **BE Data** | 100Gi | 1Ti | 10Ti | +| **BE Logs** | 20Gi | 100Gi | 500Gi | + +**권장 사용 시나리오:** +- Small: 소규모 분석 워크로드 +- Medium: 중간 규모 실시간 분석 +- Large: 대규모 데이터 웨어하우스 + +--- + +## 32. starrocks-operator +**StarRocks Operator** + +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Operator** | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | + +**볼륨 사이즈 권장사항:** +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Config Storage** | 1Gi | 5Gi | 20Gi | + +**권장 사용 시나리오:** +- Small: 소규모 StarRocks 클러스터 관리 +- Medium: 중간 규모 클러스터 운영 +- Large: 대규모 StarRocks 환경 + +--- + +## 33. strimzi-kafka-operator +**Kafka Operator** + +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Cluster Operator** | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | +| **Entity Operator** | 200m/256Mi → 500m/512Mi | 500m/512Mi → 1000m/1Gi | 1000m/1Gi → 2000m/2Gi | + +**볼륨 사이즈 권장사항:** +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Operator Logs** | 2Gi | 10Gi | 50Gi | + +**권장 사용 시나리오:** +- Small: 소규모 Kafka 클러스터 +- Medium: 중간 규모 스트리밍 +- Large: 대규모 이벤트 스트리밍 + +--- + +## 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 | +| **Redis** | 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** | 10Gi | 50Gi | 200Gi | +| **Redis Data** | 2Gi | 10Gi | 50Gi | +| **Superset Assets** | 5Gi | 20Gi | 100Gi | + +**권장 사용 시나리오:** +- Small: 소규모 대시보드 (< 50 사용자) +- Medium: 중간 규모 BI (50-200 사용자) +- Large: 엔터프라이즈 BI (200+ 사용자) + +--- + +## 35. unitycatalog +**데이터 카탈로그** + +| 컴포넌트 | Small | Medium | Large | +|----------|-------|--------|-------| +| **Catalog 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 | +|----------|-------|--------|-------| +| **Catalog Metadata** | 10Gi | 100Gi | 1Ti | +| **Database Data** | 20Gi | 200Gi | 2Ti | + +**권장 사용 시나리오:** +- Small: 소규모 데이터 자산 관리 +- Medium: 중간 규모 데이터 거버넌스 +- Large: 엔터프라이즈 데이터 카탈로그 + +--- + +## 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 급) + +--- + +## 리소스 요약 테이블 + +### 카테고리별 리소스 분류 + +#### 경량 서비스 (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 카탈로그의 모든 차트에 대한 체계적인 리소스 및 볼륨 관리가 가능하며, 환경과 요구사항에 따른 적절한 할당을 통해 최적의 성능과 비용 효율성을 달성할 수 있습니다. +| **Cache Volume** | \ No newline at end of file