[cloud native][workflow][Argo] Argo Workflows
Updated:
설명
- https://argoproj.github.io/workflows
- 쿠버네티스 네이티브 워크플로우 엔진
- CNCF incubating projects
- 병렬 작업을 오케스트레이션
- 워크플로우의 각 단계는 컨테이너 레벨에서 수행
- 작업에 종속성을 부여하여 작업 간의 순서 제어 가능
- 머신 러닝 파이프라인이나 배치 등에 사용
설치
kubectl create ns argo
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/quick-start-postgres.yaml
UI
- 2746 포트에 대한 포트포워딩 또는 해당 서비스를 NodePort로 변경
kubectl -n argo port-forward deployment/argo-server 2746:2746
- https로 붙어야 함
workflow
- argo 설치 네임스페이스와 같은 네임스페이스에서 호출해야 한다
workflow.yaml
-
--- apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: generateName: workflow-test- namespace: argo spec: entrypoint: diamond templates: - name: echo inputs: parameters: - name: message container: image: 'alpine:3.7' command: - echo - '' - name: diamond dag: tasks: - name: A template: echo arguments: parameters: - name: message value: A - name: B dependencies: - A template: echo arguments: parameters: - name: message value: B - name: C dependencies: - A template: echo arguments: parameters: - name: message value: C - name: D dependencies: - A template: echo arguments: parameters: - name: message value: D - name: E dependencies: - B - C template: echo arguments: parameters: - name: message value: E - name: F dependencies: - D template: echo arguments: parameters: - name: message value: F
-
kubectl create -f workflow.yaml