mlops-architecture/config.yaml

87 lines
2.9 KiB
YAML

# ============================================
# MLOps Architecture - Infrastructure Config
# 클러스터/컴포넌트 구성 정보 (시크릿 제외)
# ============================================
cluster:
name: gpulive
api_server: https://114.110.128.68:6443
k8s_version: v1.34.3
masters: 3
workers: 14 # GPU 노드 포함
storage_classes:
default: component-nas # NFS provisioner
internal: internal-nas
user: user-nas
node_groups:
nd: dv2-kr3-ins-nd-worker-01 # 인프라 컴포넌트용
prometheus: dv2-kr3-ins-nd-worker-02 # 모니터링용
# ── 스케줄링 정책 ──────────────────────────────
scheduling:
# 워크로드 제외 모든 컴포넌트는 nodeSelector 지정
infra_node_selector:
nodegroup: nd # 기본값
monitoring_node_selector:
nodegroup: prometheus
# ── 컴포넌트 현황 ────────────────────────────
components:
gitea:
location: external # 다른 클러스터에 설치됨
url: https://gitea.inje-private.com
version: 1.22.1
installed: true # 외부에서 운영 중
gitea_runner:
location: vm # 전용 VM에 직접 설치
host: soo-runner # ssh ubuntu@runner
version: v0.3.0 # act_runner version
deploy_type: systemd # systemd service on VM
runner_name: soo-runner
binary: /usr/local/bin/act_runner
workdir: /opt/act_runner
service_file: /etc/systemd/system/act_runner.service
labels:
- ubuntu-latest
- ubuntu-22.04
- self-hosted
installed: true
argocd:
namespace: argocd
version: v2.12.3
ingress: argocd.gpulive.cloud
installed: true
harbor:
url: harbor.inje-private.com
project: mlops # harbor.inje-private.com/mlops/
installed: true
location: external
dvc:
version: 3.66.1
remote_type: nas
remote_name: nas
nas_server: 192.168.0.43
nas_path: /GJ_SHARE_FS2/afed9d8d-f9c8-4053-aa89-23cdc70938e3
nas_mount: /ainas # 실제 마운트 포인트
dvc_storage: /ainas/dvc-storage
installed: true
# ── 네임스페이스 매핑 ────────────────────────
namespaces:
infra: gitea # Gitea, Runner
cd: argocd # ArgoCD
workload: soo # ML 워크로드 배포 대상
monitoring: monitoring # Prometheus, Grafana
# ── GitOps 구조 ──────────────────────────────
gitops:
# single: 앱 코드 + manifest 한 repo
# split: 앱 repo / manifest repo 분리
repo_strategy: "" # TODO: 결정 후 채우기
app_repo: ""
manifest_repo: ""