75 lines
2.4 KiB
Markdown
75 lines
2.4 KiB
Markdown
# ArgoCD를 이용한 Kubeflow 배포
|
|
|
|
이 저장소에는 **ApplicationSet을 사용한 Kubeflow 배포** 구현이 포함되어 있습니다.
|
|
|
|
### 배포 방법
|
|
|
|
1. ApplicationSet 적용:
|
|
```bash
|
|
kubectl apply -f dip/applicationset/kubeflow-applicationset.yaml
|
|
```
|
|
|
|
2. ArgoCD UI에서 배포 상태 확인:
|
|
- `istio-system` → `kubeflow-dependencies` → `kubeflow-core` 순서로 배포
|
|
- 각 단계별 동기화 상태 모니터링
|
|
|
|
### 배포 구조
|
|
|
|
ApplicationSet은 다음과 같은 3단계 배포 순서로 구성되어 있습니다:
|
|
|
|
#### Wave 0: Istio System (`istio-system`)
|
|
- **네임스페이스**: `istio-system`
|
|
- **의존성**: 없음 (최우선 배포)
|
|
- **구성 요소**:
|
|
- Istio CRDs
|
|
- Istio Namespace
|
|
- Istio 설치 (OAuth2-Proxy 오버레이)
|
|
- 클러스터 로컬 게이트웨이
|
|
|
|
#### Wave 1: Kubeflow Dependencies (`kubeflow-dependencies`)
|
|
- **네임스페이스**: `kubeflow`
|
|
- **의존성**: `istio-system`
|
|
- **구성 요소**:
|
|
- Cert-Manager (Kubeflow Issuer)
|
|
- OAuth2-Proxy (M2M Keycloak 오버레이)
|
|
- KNative Serving (Gateway 오버레이)
|
|
- Kubeflow Namespace
|
|
- Network Policies
|
|
- Kubeflow Roles
|
|
- Kubeflow Istio Resources
|
|
|
|
#### Wave 2: Kubeflow Core (`kubeflow-core`)
|
|
- **네임스페이스**: `kubeflow`
|
|
- **의존성**: `kubeflow-dependencies`
|
|
- **구성 요소**:
|
|
- Kubeflow Pipelines (Multi-user, Cert-Manager)
|
|
- Katib (Kubeflow 통합)
|
|
- Central Dashboard (OAuth2-Proxy)
|
|
- Admission Webhook (Cert-Manager)
|
|
- Jupyter Web App & Notebook Controller
|
|
- Profiles + KFAM
|
|
- PVC Viewer & Volumes Web App
|
|
- Tensorboard Controller & Web App
|
|
- Training Operator
|
|
- KServe & Models Web App
|
|
- Spark Operator
|
|
- User Namespace
|
|
- Kubeflow Ingress
|
|
|
|
### 주요 특징
|
|
|
|
1. **순차적 배포**: Sync Wave를 통한 명확한 배포 순서 보장
|
|
2. **자동화된 동기화**:
|
|
- 자동 Prune 및 Self-Heal 활성화
|
|
- Server-Side Apply 사용
|
|
- 네임스페이스 자동 생성
|
|
3. **재시도 정책**: 실패 시 지수 백오프로 최대 5회 재시도
|
|
4. **의존성 추적**: 각 Application의 의존성 정보를 메타데이터로 관리
|
|
|
|
|
|
|
|
### 장점
|
|
- **중앙집중식 관리**: 하나의 ApplicationSet으로 전체 Kubeflow 스택 관리
|
|
- **명확한 의존성**: Wave 기반 순차 배포로 의존성 문제 해결
|
|
- **확장성**: 새로운 컴포넌트 추가 시 리스트에 항목만 추가
|
|
- **일관성**: 모든 Application이 동일한 정책과 설정 적용 |