2453 lines
64 KiB
Markdown
2453 lines
64 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
|
|
```
|
|
|
|
## 41. cloudbeaver
|
|
**웹 기반 데이터베이스 관리 도구 (DBeaver)**
|
|
|
|
| 컴포넌트 | Small | Medium | Large |
|
|
|----------|-------|--------|-------|
|
|
| **CloudBeaver** | 500m/512Mi → 750m/768Mi | 500m/1Gi → 1000m/1.5Gi | 1000m/2Gi → 1500m/3Gi |
|
|
|
|
**볼륨 사이즈 권장사항:**
|
|
| 컴포넌트 | Small | Medium | Large |
|
|
|----------|-------|--------|-------|
|
|
| **Workspace** | 5Gi | 20Gi | 50Gi |
|
|
|
|
**권장 사용 시나리오:**
|
|
- Small: 개발/테스트 환경 (소수 사용자, 경량 쿼리)
|
|
- Medium: 소규모 프로덕션 (팀 단위, 다수 DB 연결)
|
|
- Large: 대규모 프로덕션 (다수 동시 접속, 대용량 쿼리)
|
|
|
|
**custom-values.yaml 설정**
|
|
```yaml
|
|
# small (기본)
|
|
resources:
|
|
requests:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
limits:
|
|
cpu: 750m
|
|
memory: 768Mi
|
|
persistence:
|
|
enabled: true
|
|
size: 5Gi
|
|
|
|
# medium
|
|
# resources:
|
|
# requests:
|
|
# cpu: 500m
|
|
# memory: 1024Mi
|
|
# limits:
|
|
# cpu: 1000m
|
|
# memory: 1536Mi
|
|
# persistence:
|
|
# enabled: true
|
|
# size: 20Gi
|
|
|
|
# large
|
|
# resources:
|
|
# requests:
|
|
# cpu: 1000m
|
|
# memory: 2048Mi
|
|
# limits:
|
|
# cpu: 1500m
|
|
# memory: 3072Mi
|
|
# persistence:
|
|
# enabled: true
|
|
# size: 50Gi
|
|
```
|
|
|
|
--- |