Files
service-catalog/doc/define-chart-resources.md
T
2026-02-27 14:59:32 +09:00

2397 lines
63 KiB
Markdown

# 전체 차트 리소스 정의
## 개요
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
```
---