# VictoriaMetrics Cluster 배포 URL 기반 멀티테넌시를 지원하는 고가용 시계열 메트릭 스토리지. vminsert(쓰기)·vmselect(조회)·vmstorage(저장) 3개 컴포넌트로 구성된다. ## 1. 배포 방법 ```sh helm upgrade vmcluster ./ -f custom-values.yaml --install -n monitoring ``` 배포 시 주의: - `vmstorage`는 StatefulSet + PVC를 사용한다. `persistentVolume.size`(기본 10Gi)와 StorageClass를 환경에 맞게 조정한다. - 인증/라우팅은 이 차트가 담당하지 않는다. 사용자/외부 접근은 **victoria-metrics-auth(vmauth)** 차트를 앞단에 둔다. ## 2. custom-values.yaml 설정 설명 | 컴포넌트 | 포트 | 역할 | |----------|------|------| | vminsert | 8480 | 쓰기 수신 — `/insert/{accountID}/prometheus/api/v1/write` | | vmselect | 8481 | 쿼리 — `/select/{accountID}/prometheus/api/v1/query` | | vmstorage | 8482 | 데이터 저장 (PVC, 보존기간 `retentionPeriod`) | ## 3. 멀티테넌시 `accountID`를 URL 경로에 포함하여 **스토리지 레벨에서 완전 격리**된다. - 쓰기: vmagent가 `/insert/{accountID}/...`로 전송 - 조회: vmauth가 JWT `vm_access`의 accountID로 `/select/{accountID}/...` 라우팅 - 전체 집계: `/select/multitenant/prometheus` (vmalert 등 플랫폼 레벨) ## 4. 의존 관계 - **쓰기**: vmagent → vminsert:8480 - **조회**: vmauth → vmselect:8481, vmalert → vmselect multitenant - **알림 메트릭**: vmalert remoteWrite → vminsert:8480 `/insert/0/` ## 5. 검증 ```sh kubectl get pods -n monitoring -l app.kubernetes.io/instance=vmcluster kubectl port-forward -n monitoring svc/vmcluster-victoria-metrics-cluster-vmselect 8481:8481 curl -s 'http://localhost:8481/select/0/prometheus/api/v1/query?query=up' | jq '.status' ```