diff --git a/doc/change-bitnami-image.md b/doc/change-bitnami-image.md index 4810cda..77c3e93 100644 --- a/doc/change-bitnami-image.md +++ b/doc/change-bitnami-image.md @@ -95,7 +95,7 @@ postgresql: ``` yaml postgresql: image: - repository: bitnami/postgresql + repository: bitnamilegacy/postgresql redis: image: repository: bitnamilegacy/valkey @@ -186,7 +186,7 @@ entity-store: ** bitnami 사용 컴포넌트 ** | 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | |----------|-------|-------| -| **PostgreSQL Primary** | bitnami/postgresql-repmgr | bitnamilegacy/postgresql | +| **PostgreSQL** | bitnami/postgresql-repmgr | bitnamilegacy/postgresql | | **pgpool** | bitnami/pgpool | bitnamilegacy/pgpool | ``` yaml @@ -196,4 +196,35 @@ postgresql: pgpool: image: repository: bitnamilegacy/pgpool +``` + +## 11. superset + +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | +| **Redis** | bitnami/valkey | bitnamilegacy/valkey | + +``` yaml +postgresql: + image: + repository: bitnamilegacy/postgresql +redis: + image: + repository: bitnamilegacy/redis + +``` + +## 11. unity catalog + +** bitnami 사용 컴포넌트 ** +| 컴포넌트 | 사용 이미지 | 변경해야 할 이미지 | +|----------|-------|-------| +| **PostgreSQL** | bitnami/postgresql | bitnamilegacy/postgresql | + +``` yaml +postgresql: + image: + repository: bitnamilegacy/postgresql ``` \ No newline at end of file diff --git a/doc/complete-chart-resources-with-volumes.md b/doc/complete-chart-resources-with-volumes.md index 03d8d99..77afe76 100644 --- a/doc/complete-chart-resources-with-volumes.md +++ b/doc/complete-chart-resources-with-volumes.md @@ -42,7 +42,7 @@ worker: # requests: # cpu: 100m # memory: 128Mi -scheduler: +scheduler:ㄴㅅㅁ replicas: 1 resources: {} # limits: @@ -1321,28 +1321,92 @@ persistence: --- ## 26. ragflow -**RAG 워크플로우** +**RAGFlow - AI 기반 문서 검색 및 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 | +| **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 | |----------|-------|--------|-------| -| **Document Storage** | 10Gi | 100Gi | 1Ti | -| **Vector Storage** | 5Gi | 50Gi | 500Gi | -| **Index Storage** | 2Gi | 20Gi | 200Gi | +| **Infinity Storage** | 5Gi | 20Gi | 100Gi | +| **MinIO Storage** | 5Gi | 50Gi | 200Gi | +| **MySQL Storage** | 5Gi | 20Gi | 100Gi | +| **Redis Storage** | 5Gi | 10Gi | 50Gi | **권장 사용 시나리오:** -- Small: 소규모 문서 검색 -- Medium: 중간 규모 RAG 시스템 -- Large: 대규모 지식 베이스 +- Small: 개발/테스트, 소규모 문서 처리 (< 1000개 문서) +- Medium: 중간 규모 RAG 시스템 (1000-10000개 문서) +- Large: 대규모 지식 베이스 (10000+ 개 문서) **custom-values.yaml 설정** -``` 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 ``` --- @@ -1354,39 +1418,108 @@ persistence: |----------|-------|--------|-------| | **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+ 클러스터) +**custom-values.yaml 설정** +``` yaml +resources: + requests: + cpu: 100m + memory: 500Mi + limits: + cpu: 1000m + memory: 1000Mi +``` + --- ## 28. rancher-monitoring -**Rancher 모니터링 스택** +**Rancher 모니터링 스택 - Prometheus Operator 기반 모니터링** | 컴포넌트 | 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 | +| **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 Data** | 50Gi | 200Gi | 1Ti | -| **Grafana Data** | 5Gi | 20Gi | 100Gi | -| **AlertManager Data** | 2Gi | 10Gi | 50Gi | +| **Prometheus Storage** | 10Gi | 50Gi | 200Gi | +| **Grafana Storage** | 1Gi | 5Gi | 20Gi | +| **AlertManager Storage** | 1Gi | 5Gi | 20Gi | **권장 사용 시나리오:** -- Small: 소규모 클러스터 모니터링 -- Medium: 중간 규모 모니터링 -- Large: 대규모 멀티 클러스터 모니터링 +- 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: {} +``` --- @@ -1396,23 +1529,44 @@ persistence: --- ## 30. spark-operator -**Apache Spark Operator** +**Apache Spark Operator - Kubernetes에서 Spark 애플리케이션 관리** | 컴포넌트 | Small | Medium | Large | |----------|-------|--------|-------| -| **Operator** | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | +| **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 History** | 10Gi | 50Gi | 200Gi | -| **Event Logs** | 5Gi | 20Gi | 100Gi | +| **Spark Event Logs** | 5Gi | 20Gi | 100Gi | +| **Spark History Server** | 10Gi | 50Gi | 200Gi | **권장 사용 시나리오:** -- Small: 소규모 Spark 작업 -- Medium: 중간 규모 데이터 처리 -- Large: 대규모 빅데이터 처리 +- 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 @@ -1421,20 +1575,79 @@ persistence: | 컴포넌트 | 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 | +| **FE Proxy** | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | **볼륨 사이즈 권장사항:** | 컴포넌트 | Small | Medium | Large | |----------|-------|--------|-------| | **FE Metadata** | 10Gi | 50Gi | 200Gi | -| **BE Data** | 100Gi | 1Ti | 10Ti | -| **BE Logs** | 20Gi | 100Gi | 500Gi | +| **FE Logs** | 5Gi | 20Gi | 100Gi | +| **CN Data** | 100Gi | 1Ti | 10Ti | +| **CN Logs** | 20Gi | 100Gi | 500Gi | +| **CN Spill** | 10Gi | 50Gi | 200Gi | **권장 사용 시나리오:** -- Small: 소규모 분석 워크로드 -- Medium: 중간 규모 실시간 분석 -- Large: 대규모 데이터 웨어하우스 +- 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" +``` --- @@ -1445,16 +1658,23 @@ persistence: |----------|-------|--------|-------| | **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 환경 +**custom-values.yaml 설정** +```yaml +starrocksOperator: + resources: + limits: + cpu: 500m + memory: 800Mi + requests: + cpu: 500m + memory: 400Mi +``` + --- ## 33. strimzi-kafka-operator @@ -1463,18 +1683,22 @@ persistence: | 컴포넌트 | 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: 대규모 이벤트 스트리밍 +**custom-values.yaml 설정** +```yaml +resources: + limits: + memory: 384Mi + cpu: 1000m + requests: + memory: 384Mi +``` + --- ## 34. superset @@ -1484,30 +1708,125 @@ persistence: |----------|-------|--------|-------| | **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 | +| **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** | 10Gi | 50Gi | 200Gi | -| **Redis Data** | 2Gi | 10Gi | 50Gi | -| **Superset Assets** | 5Gi | 20Gi | 100Gi | +| **PostgreSQL Data** | 8Gi | 50Gi | 200Gi | +| **Redis Data** | 8Gi | 20Gi | 100Gi | **권장 사용 시나리오:** -- Small: 소규모 대시보드 (< 50 사용자) -- Medium: 중간 규모 BI (50-200 사용자) -- Large: 엔터프라이즈 BI (200+ 사용자) +- 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 +## 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 | +| **Postgresql** | 500m/1Gi → 1000m/2Gi | 1000m/2Gi → 2000m/4Gi | 2000m/4Gi → 4000m/8Gi | **볼륨 사이즈 권장사항:** | 컴포넌트 | Small | Medium | Large | @@ -1520,6 +1839,24 @@ persistence: - 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 @@ -1540,6 +1877,34 @@ persistence: - 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" +``` + --- ## 리소스 요약 테이블