Add VictoriaMetrics observability stack + sync catalog for monitoring test
- VM stack 10 charts: victoria-metrics-cluster/auth, victoria-logs-cluster, victoria-metrics-agent/alert, opentelemetry-collector, kube-state-metrics, prometheus-node-exporter, alertmanager, perses (JWT/OIDC, Infisical-ready) - ArgoCD ApplicationSet (syncWave) + per-chart dip-values overlays - doc/victoria-metrics-architecture.md, define-chart-resources updates - includes pending working-tree changes (mlflow, kubeflow, apisix, CLAUDE.md) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
## 개요
|
||||
|
||||
DIP 카탈로그의 모든 35개 Helm 차트에 대한 상세한 리소스 요구사항을 정리한 완전한 가이드입니다. 각 차트별로 Small, Medium, Large 티어의 CPU, 메모리, 볼륨 할당량을 제공합니다.
|
||||
DIP 카탈로그의 Helm 차트에 대한 상세한 리소스 요구사항을 정리한 완전한 가이드입니다. 각 차트별로 Small, Medium, Large 티어의 CPU, 메모리, 볼륨 할당량을 제공합니다. (VictoriaMetrics 옵저버빌리티 스택 10종 포함)
|
||||
|
||||
---
|
||||
|
||||
@@ -2394,6 +2394,76 @@ opensearch:
|
||||
size: 30Gi
|
||||
```
|
||||
|
||||
## 42. apisix
|
||||
**고성능 클라우드 네이티브 API Gateway**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **APISIX Gateway** | 250m/512Mi → 500m/768Mi | 500m/512Mi → 1000m/1Gi | 1000m/1Gi → 2000m/2Gi |
|
||||
| **etcd** (내장) | 100m/256Mi → 500m/512Mi | 200m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi |
|
||||
|
||||
**볼륨 사이즈 권장사항:**
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **etcd Data** | 4Gi | 8Gi | 20Gi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 개발/테스트 (replica 1, 내장 etcd 단일)
|
||||
- Medium: 스테이징 (replica 2, 내장 etcd HA 3)
|
||||
- Large: 프로덕션 (replica 3+, 외부 etcd HA 권장)
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
# small
|
||||
replicaCount: 1
|
||||
resources:
|
||||
requests:
|
||||
cpu: 250m
|
||||
memory: 512Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 768Mi
|
||||
etcd:
|
||||
enabled: true
|
||||
replicaCount: 1
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 4Gi
|
||||
|
||||
# medium
|
||||
# replicaCount: 2
|
||||
# resources:
|
||||
# requests:
|
||||
# cpu: 500m
|
||||
# memory: 512Mi
|
||||
# limits:
|
||||
# cpu: 1000m
|
||||
# memory: 1Gi
|
||||
# etcd:
|
||||
# enabled: true
|
||||
# replicaCount: 3
|
||||
# persistence:
|
||||
# enabled: true
|
||||
# size: 8Gi
|
||||
|
||||
# large (외부 etcd 사용 권장)
|
||||
# replicaCount: 3
|
||||
# resources:
|
||||
# requests:
|
||||
# cpu: 1000m
|
||||
# memory: 1Gi
|
||||
# limits:
|
||||
# cpu: 2000m
|
||||
# memory: 2Gi
|
||||
# etcd:
|
||||
# enabled: false
|
||||
# externalEtcd:
|
||||
# host:
|
||||
# - http://etcd-cluster.platform.svc.cluster.local:2379
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 41. cloudbeaver
|
||||
**웹 기반 데이터베이스 관리 도구 (DBeaver)**
|
||||
|
||||
@@ -2450,4 +2520,262 @@ persistence:
|
||||
# size: 50Gi
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 43. victoria-metrics-cluster
|
||||
**VictoriaMetrics Cluster - 멀티테넌시 시계열 메트릭 스토리지**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **vminsert** | 100m/256Mi → 500m/512Mi | 250m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi |
|
||||
| **vmselect** | 100m/256Mi → 500m/512Mi | 250m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi |
|
||||
| **vmstorage** | 100m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi | 1000m/2Gi → 4000m/4Gi |
|
||||
|
||||
**볼륨 사이즈 권장사항:**
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **vmstorage Data** | 10Gi | 50Gi | 200Gi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 개발/테스트, 단일 클러스터 (보존 1개월)
|
||||
- Medium: 스테이징, 다중 테넌트
|
||||
- Large: 프로덕션, 장기 보존 + 고카디널리티
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
vmstorage:
|
||||
retentionPeriod: 1
|
||||
persistentVolume:
|
||||
enabled: true
|
||||
size: 10Gi
|
||||
resources:
|
||||
requests: { cpu: 100m, memory: 512Mi }
|
||||
limits: { cpu: 1000m, memory: 1Gi }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 44. victoria-metrics-auth
|
||||
**vmauth - 인증·라우팅 프록시 (Keycloak JWT/OIDC)**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **vmauth** | 50m/64Mi → 200m/128Mi | 100m/128Mi → 500m/256Mi | 250m/256Mi → 1000m/512Mi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 개발/테스트 (소수 동시 쿼리)
|
||||
- Medium: 팀 단위 멀티테넌시
|
||||
- Large: 대규모 동시 쿼리 (vmauth 다중 replica 권장)
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
replicaCount: 1
|
||||
resources:
|
||||
requests: { cpu: 50m, memory: 64Mi }
|
||||
limits: { cpu: 200m, memory: 128Mi }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 45. victoria-logs-cluster
|
||||
**VictoriaLogs Cluster - 멀티테넌시 로그 스토리지**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **vlinsert** | 100m/128Mi → 500m/256Mi | 250m/256Mi → 1000m/512Mi | 500m/512Mi → 2000m/1Gi |
|
||||
| **vlstorage** | 100m/256Mi → 500m/512Mi | 250m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi |
|
||||
| **vlselect** | 100m/128Mi → 500m/256Mi | 250m/256Mi → 1000m/512Mi | 500m/512Mi → 2000m/1Gi |
|
||||
|
||||
**볼륨 사이즈 권장사항:**
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **vlstorage Data** | 5Gi | 30Gi | 150Gi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 개발/테스트 (보존 7일)
|
||||
- Medium: 스테이징, 다중 테넌트
|
||||
- Large: 프로덕션, 대용량 로그 + 장기 보존
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
vlstorage:
|
||||
retentionPeriod: 7d
|
||||
persistentVolume:
|
||||
enabled: true
|
||||
size: 5Gi
|
||||
resources:
|
||||
requests: { cpu: 100m, memory: 256Mi }
|
||||
limits: { cpu: 500m, memory: 512Mi }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 46. victoria-metrics-agent
|
||||
**vmagent - Kubernetes 메트릭 수집 에이전트**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **vmagent** | 50m/128Mi → 500m/512Mi | 250m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 소규모 클러스터 (< 30 노드)
|
||||
- Medium: 중규모 (30-100 노드)
|
||||
- Large: 대규모 (100+ 노드, 고카디널리티 스크레이프)
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
resources:
|
||||
requests: { cpu: 50m, memory: 128Mi }
|
||||
limits: { cpu: 500m, memory: 512Mi }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 47. victoria-metrics-alert
|
||||
**vmalert - 알림 규칙 평가 엔진**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **vmalert** | 50m/128Mi → 200m/256Mi | 100m/256Mi → 500m/512Mi | 250m/512Mi → 1000m/1Gi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 소수 규칙 그룹 (< 50 rules)
|
||||
- Medium: 다수 규칙 + 30s 평가
|
||||
- Large: 대규모 규칙셋 + 짧은 평가 주기
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
server:
|
||||
resources:
|
||||
requests: { cpu: 50m, memory: 128Mi }
|
||||
limits: { cpu: 200m, memory: 256Mi }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 48. opentelemetry-collector
|
||||
**OpenTelemetry Collector - 로그/트레이스/이벤트 수집**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **otelcol (DaemonSet)** | 100m/256Mi → 500m/512Mi | 250m/512Mi → 1000m/1Gi | 500m/1Gi → 2000m/2Gi |
|
||||
| **otelcol-events (Deployment)** | 10m/64Mi → 100m/128Mi | 50m/128Mi → 250m/256Mi | 100m/256Mi → 500m/512Mi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 개발/테스트 (저 로그량)
|
||||
- Medium: 중간 로그/트레이스 처리량
|
||||
- Large: 대규모 로그 + 트레이스 (노드당 고처리량)
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
# DaemonSet (custom-values.yaml)
|
||||
resources:
|
||||
requests: { cpu: 100m, memory: 256Mi }
|
||||
limits: { cpu: 500m, memory: 512Mi }
|
||||
# Deployment events (custom-values-events.yaml)
|
||||
# resources:
|
||||
# requests: { cpu: 10m, memory: 64Mi }
|
||||
# limits: { cpu: 100m, memory: 128Mi }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 49. kube-state-metrics
|
||||
**kube-state-metrics - K8s 오브젝트 상태 메트릭**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **kube-state-metrics** | 10m/64Mi → 100m/128Mi | 50m/128Mi → 250m/256Mi | 100m/256Mi → 500m/512Mi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 소규모 클러스터 (< 30 노드)
|
||||
- Medium: 중규모 (30-100 노드)
|
||||
- Large: 대규모 (100+ 노드, 오브젝트 多)
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
resources:
|
||||
requests: { cpu: 10m, memory: 64Mi }
|
||||
limits: { cpu: 100m, memory: 128Mi }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 50. prometheus-node-exporter
|
||||
**node-exporter - 노드 시스템 메트릭 (DaemonSet)**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **node-exporter** | 10m/32Mi → 100m/64Mi | 20m/64Mi → 200m/128Mi | 50m/128Mi → 300m/256Mi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- 노드당 1개 파드(DaemonSet). 노드 사양과 무관하게 경량 — 티어는 메트릭 수집 옵션에 따라 조정.
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
tolerations:
|
||||
- operator: Exists
|
||||
resources:
|
||||
requests: { cpu: 10m, memory: 32Mi }
|
||||
limits: { cpu: 100m, memory: 64Mi }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 51. alertmanager
|
||||
**Alertmanager - 알림 라우팅·중복제거·발송**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **alertmanager** | 50m/64Mi → 200m/128Mi | 100m/128Mi → 500m/256Mi | 250m/256Mi → 1000m/512Mi |
|
||||
|
||||
**볼륨 사이즈 권장사항:**
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **Data (선택)** | 비활성 | 2Gi | 5Gi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 단일 인스턴스 (persistence 비활성)
|
||||
- Medium: 알림량 증가 시 persistence 활성
|
||||
- Large: HA 클러스터(다중 replica) + persistence
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
resources:
|
||||
requests: { cpu: 50m, memory: 64Mi }
|
||||
limits: { cpu: 200m, memory: 128Mi }
|
||||
persistence:
|
||||
enabled: false
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 52. perses
|
||||
**Perses - 대시보드/시각화 플랫폼 (Apache 2.0)**
|
||||
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **Perses** | 100m/128Mi → 500m/256Mi | 250m/256Mi → 1000m/512Mi | 500m/512Mi → 2000m/1Gi |
|
||||
|
||||
**볼륨 사이즈 권장사항:**
|
||||
| 컴포넌트 | Small | Medium | Large |
|
||||
|----------|-------|--------|-------|
|
||||
| **Data (대시보드)** | 1Gi | 5Gi | 20Gi |
|
||||
|
||||
**권장 사용 시나리오:**
|
||||
- Small: 개발/테스트 (소수 대시보드)
|
||||
- Medium: 팀 단위 다수 프로젝트
|
||||
- Large: 대규모 동시 사용자 + 다수 데이터소스
|
||||
|
||||
**custom-values.yaml 설정**
|
||||
```yaml
|
||||
replicas: 1
|
||||
resources:
|
||||
requests: { cpu: 100m, memory: 128Mi }
|
||||
limits: { cpu: 500m, memory: 256Mi }
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 1Gi
|
||||
```
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user