Argo Workflows는 Kubernetes 네이티브 워크플로우 엔진이다. DAG(유향 비순환 그래프) 기반 태스크 조합, 멀티 스텝 파이프라인, ML 파이프라인, 배치 처리에 활용된다.
핵심 개념
Workflow: 전체 실행 단위
Template: 재사용 가능한 작업 정의 (container, dag, steps, script 등)
DAG: 의존성 기반 병렬 실행 그래프
Artifact: 스텝 간 파일 전달
DAG 워크플로우 예시
yaml
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: ml-pipeline-
spec:
entrypoint: ml-dag
templates:
- name: ml-dag
dag:
tasks:
- name: preprocess
template: preprocess-data
- name: train-model-a
dependencies: [preprocess]
template: train
arguments:
parameters:
- name: model-type
value: xgboost
- name: train-model-b
dependencies: [preprocess]
template: train
arguments:
parameters:
- name: model-type
value: lightgbm
- name: evaluate
dependencies: [train-model-a, train-model-b]
template: evaluate-models
- name: preprocess-data
container:
image: python:3.11
command: [python, preprocess.py]
- name: train
inputs:
parameters:
- name: model-type
container:
image: python:3.11
command: [python, train.py, --model, "{{inputs.parameters.model-type}}"]
| 항목 | Argo Workflows | Tekton |
|---|
| DAG 지원 | 기본 지원 | 제한적 |
| ML 파이프라인 | 최적화 | 범용 |
| UI | 풍부한 대시보드 | 기본 |
| 아티팩트 | S3/GCS 내장 | 외부 스토리지 |
| 사용 사례 | ML, 데이터 처리 | CI/CD |
관련 문서