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:
wbsong111
2026-06-25 11:10:51 +09:00
parent a55427730e
commit 6290322f1b
514 changed files with 68103 additions and 40 deletions
+329 -1
View File
@@ -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
```
---