Initial commit: MLOps architecture project setup
- config.yaml: cluster/component infrastructure config - README.md: install guide and component status - .gitignore: exclude .env and secrets Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
08ac29a352
|
|
@ -0,0 +1,15 @@
|
||||||
|
# Secrets
|
||||||
|
.env
|
||||||
|
*.key
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# DVC
|
||||||
|
/dvc-storage/
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
# MLOps Architecture
|
||||||
|
|
||||||
|
Gitea + Gitea Runner + ArgoCD + DVC 기반 MLOps 파이프라인 구성 프로젝트
|
||||||
|
|
||||||
|
## 환경 정보
|
||||||
|
|
||||||
|
| 항목 | 값 |
|
||||||
|
|------|-----|
|
||||||
|
| K8s 클러스터 | v1.34.3 / Master 3 + Worker 14 |
|
||||||
|
| Gitea | v1.22.1 — `https://gitea.gpulive.cloud` |
|
||||||
|
| ArgoCD | v2.12.3 — `https://argocd.gpulive.cloud` |
|
||||||
|
| Storage Class | `component-nas` (default), `internal-nas`, `user-nas` |
|
||||||
|
|
||||||
|
## 컴포넌트 설치 상태
|
||||||
|
|
||||||
|
| 컴포넌트 | 상태 | 네임스페이스 |
|
||||||
|
|----------|------|-------------|
|
||||||
|
| Gitea | installed | `gitea` |
|
||||||
|
| Gitea Runner | **TODO** | `gitea` |
|
||||||
|
| ArgoCD | installed | `argocd` |
|
||||||
|
| DVC | **TODO** | - |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Gitea (이미 설치됨)
|
||||||
|
|
||||||
|
Helm으로 설치 완료. Ingress를 통해 접근 가능.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 상태 확인
|
||||||
|
kubectl get pods -n gitea
|
||||||
|
kubectl get ingress -n gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Gitea Runner
|
||||||
|
|
||||||
|
> TODO: 설치 후 아래 내용 업데이트
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 설치 예정 명령어가 여기에 추가됩니다
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. ArgoCD (이미 설치됨)
|
||||||
|
|
||||||
|
Helm으로 설치 완료. Ingress를 통해 접근 가능.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 상태 확인
|
||||||
|
kubectl get pods -n argocd
|
||||||
|
kubectl get ingress -n argocd
|
||||||
|
|
||||||
|
# 초기 admin 비밀번호 확인
|
||||||
|
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. DVC
|
||||||
|
|
||||||
|
> TODO: 설치 후 아래 내용 업데이트
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 설치 예정 명령어가 여기에 추가됩니다
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 파일 구조
|
||||||
|
|
||||||
|
```
|
||||||
|
mlops_architecture/
|
||||||
|
├── .env # 접속 정보, 시크릿 (git 제외)
|
||||||
|
├── .gitignore
|
||||||
|
├── config.yaml # 인프라 구성 정보
|
||||||
|
└── README.md # 설치 가이드 (이 파일)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 설정 파일 사용법
|
||||||
|
|
||||||
|
- `.env` : 계정 정보, 토큰 등 민감 정보 → **git에 포함되지 않음**
|
||||||
|
- `config.yaml` : 클러스터/컴포넌트 메타 정보 → git 추적 가능
|
||||||
|
- 컴포넌트 설치할 때마다 이 README와 config.yaml을 업데이트합니다
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
# ============================================
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# ── 컴포넌트 현황 ────────────────────────────
|
||||||
|
components:
|
||||||
|
gitea:
|
||||||
|
location: external # 다른 클러스터에 설치됨
|
||||||
|
url: https://gitea.inje-private.com
|
||||||
|
version: 1.22.1
|
||||||
|
installed: true # 외부에서 운영 중
|
||||||
|
|
||||||
|
gitea_runner:
|
||||||
|
location: this_cluster # Gitea는 외부지만 Runner는 이 클러스터에 설치
|
||||||
|
namespace: soo # 워크로드와 같은 네임스페이스
|
||||||
|
version: "" # 파이프라인 개발 시 설치 예정
|
||||||
|
deploy_type: kubernetes
|
||||||
|
installed: false
|
||||||
|
note: "GPU/NAS 접근을 위해 이 클러스터에 설치 예정"
|
||||||
|
|
||||||
|
argocd:
|
||||||
|
namespace: argocd
|
||||||
|
version: v2.12.3
|
||||||
|
ingress: argocd.gpulive.cloud
|
||||||
|
installed: true
|
||||||
|
|
||||||
|
dvc:
|
||||||
|
version: "" # TODO: 설치 시 채우기
|
||||||
|
remote_type: nas
|
||||||
|
nas_server: 192.168.0.43
|
||||||
|
nas_path: /GJ_SHARE_FS2/afed9d8d-f9c8-4053-aa89-23cdc70938e3
|
||||||
|
mount_point: /mnt/dvc-storage
|
||||||
|
installed: false
|
||||||
|
|
||||||
|
# ── 네임스페이스 매핑 ────────────────────────
|
||||||
|
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: ""
|
||||||
Loading…
Reference in New Issue