mlops-architecture/README.md

3.1 KiB

MLOps Architecture

Gitea + Gitea Runner + ArgoCD + DVC 기반 MLOps 파이프라인 구성 프로젝트

Repository

https://gitea.inje-private.com/selee/mlops-architecture

환경 정보

항목
K8s 클러스터 v1.34.3 / Master 3 + Worker 14
Gitea v1.22.1 — https://gitea.inje-private.com (외부 클러스터)
ArgoCD v2.12.3 — https://argocd.gpulive.cloud
DVC Remote NAS 192.168.0.43
Storage Class component-nas (default), internal-nas, user-nas

컴포넌트 설치 상태

컴포넌트 상태 위치
Gitea installed 외부 클러스터
Gitea Runner TODO 이 클러스터 (soo ns)
ArgoCD installed + repo 연동 완료 이 클러스터 (argocd ns)
DVC TODO 로컬 + NAS

1. Gitea (외부 클러스터, 설치됨)

외부 클러스터에서 운영 중. 이 프로젝트 repo 생성 완료.

# repo 생성 (API)
curl -sk -X POST "https://gitea.inje-private.com/api/v1/user/repos" \
  -u "$GITEA_ADMIN_USER:$GITEA_ADMIN_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"name":"mlops-architecture","description":"MLOps Architecture","private":true,"auto_init":false}'

# 로컬 연결
git init && git branch -m main
git remote add origin https://gitea.inje-private.com/selee/mlops-architecture.git
git add config.yaml README.md .gitignore
git commit -m "Initial commit"
git push -u origin main

2. Gitea Runner

TODO: 설치 후 아래 내용 업데이트

# 설치 예정 명령어가 여기에 추가됩니다

3. ArgoCD (설치됨 + Gitea repo 연동 완료)

Helm으로 설치 완료. Gitea repo 등록 및 Application 생성 완료.

  • App 이름: mlops-architecture
  • Source: gitea.inje-private.com/selee/mlops-architecturemanifests/
  • Destination: 이 클러스터 soo 네임스페이스
  • SyncPolicy: automated (prune + selfHeal)
# 상태 확인
kubectl get pods -n argocd
kubectl get app mlops-architecture -n argocd

# ArgoCD에 Gitea repo 등록 (이미 완료)
# ArgoCD API를 통해 등록됨 - argocd/application.yaml 참조

# Application 적용
kubectl apply -f argocd/application.yaml

# sync 상태 확인
kubectl get app mlops-architecture -n argocd -o jsonpath='{.status.sync.status}'; echo

4. DVC

TODO: 설치 후 아래 내용 업데이트

# 설치 예정 명령어가 여기에 추가됩니다

파일 구조

mlops_architecture/
├── .env              # 접속 정보, 시크릿 (git 제외)
├── .gitignore
├── config.yaml       # 인프라 구성 정보
├── README.md         # 설치 가이드 (이 파일)
├── argocd/
│   └── application.yaml  # ArgoCD Application 정의
└── manifests/            # K8s 배포 manifest (ArgoCD가 감시)

설정 파일 사용법

  • .env : 계정 정보, 토큰 등 민감 정보 → git에 포함되지 않음
  • config.yaml : 클러스터/컴포넌트 메타 정보 → git 추적 가능
  • 컴포넌트 설치할 때마다 이 README와 config.yaml을 업데이트합니다