LabHub
배우기 러닝패스 코스

CAPA — Argoプロジェクト認定アソシエイト

ワークフローが実際に回るのを見る

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

이 실습은 진짜 Argo Workflows 에서 돕니다

VM 안에 워크플로 컨트롤러 · argo-server · 아티팩트 저장소(minio) 가 실제로 떠 있습니다. 워크플로를 내면 컨트롤러가 파드를 띄우고, 단계가 진행되고, 실패 하면 재시도하고, 로그가 남습니다.

앞 모듈의 워크플로 실습은 가짜 클러스터에서 돌았습니다. 오브젝트는 받아 주지만 컨트롤러가 없어 아무 일도 일어나지 않았습니다. YAML 을 쓰는 연습까지가 전부였고, 그 YAML 이 실제로 도는지는 확인할 방법이 없었습니다.

처음 뜨는 데 4분쯤 걸립니다.

준비된 것

네임스페이스   argo        권한도 붙어 있어 바로 낼 수 있습니다
CLI            argo        argo submit / list / get / logs
아티팩트 저장소 minio      단계 사이에 파일을 주고받습니다
미리 받은 이미지 busybox:1.36 · alpine:3.20

목표

워크플로의 뼈대부터 실패를 다루는 자리까지, 실제로 돌려서 확인합니다.

단계

  1. 워크플로 하나를 돌리고 /root/capa/run.txt 에 담으세요.
  2. DAG 로 의존성을 만들고 병렬로 도는 것을 /root/capa/dag.txt 에 담으세요.
  3. 파라미터를 넘기고 결과를 받아 /root/capa/params.txt 에 담으세요.
  4. 아티팩트를 다음 단계로 넘겨 /root/capa/artifacts.txt 에 담으세요.
  5. retryStrategy 로 실제로 재시도가 도는 것을 /root/capa/retry.txt 에 담으세요.
  6. onExit실패했을 때도 도는 것을 /root/capa/exit.txt 에 담으세요.
  7. WorkflowTemplate 을 만들어 재사용하고 /root/capa/template.txt 에 담으세요.
  8. /root/capa/report.mdworkflows_run=, retry_attempts=, exit_ran=yes 세 줄과 설명을 쓰세요.

참고

진짜로 돈다

워크플로 하나를 돌리고 /root/capa/run.txt 에 담으세요.

argo submit --wait 로 내고, 끝난 뒤 argo getkubectl get pod 로 확인하세요.

의존성이 순서를 만든다

DAG 로 의존성을 만들고 병렬로 도는 것을 /root/capa/dag.txt 에 담으세요.

dependencies 가 없는 태스크는 동시에 시작합니다. 시작 시각을 비교해 보세요.

값을 주고받는다

파라미터를 넘기고 결과를 받아 /root/capa/params.txt 에 담으세요.

outputs.parametersvalueFrom.path 로 파일을 읽거나, script 템플릿의 표준 출력을 result 로 받습니다.

파일을 다음 단계로 넘긴다

아티팩트를 다음 단계로 넘겨 /root/capa/artifacts.txt 에 담으세요.

outputs.artifacts 로 내놓고 inputs.artifactsfrom 으로 받습니다. 저장소를 거쳐 갑니다.

실패하면 다시 해 본다

retryStrategy 로 실제로 재시도가 도는 것을 /root/capa/retry.txt 에 담으세요.

retryStrategy.limit재시도 횟수입니다. 첫 시도는 여기 들어가지 않습니다.

실패해도 도는 자리

onExit실패했을 때도 도는 것을 /root/capa/exit.txt 에 담으세요.

onExit 은 워크플로가 실패해도 돕니다. {{workflow.status}} 로 결과를 알 수 있습니다.

정의를 재사용한다

WorkflowTemplate 을 만들어 재사용하고 /root/capa/template.txt 에 담으세요.

WorkflowTemplate 을 만들고 templateRef 로 가리키세요.

무엇을 배웠나

/root/capa/report.mdworkflows_run=, retry_attempts=, exit_ran=yes 세 줄과 설명을 쓰세요.

workflows_run=, retry_attempts=, exit_ran=yes 세 줄과 설명을 쓰세요.