ワークフローが実際に回るのを見る
このラボは本物のArgo Workflowsで動きます
VMの中に、ワークフローコントローラー・argo-server・アーティファクトストア(minio)が実際に起動しています。ワークフローを出すと、コントローラーがPodを起動し、ステップが進行し、失敗するとリトライし、ログが残ります。
前のモジュールのワークフローのラボは、疑似クラスターで動いていました。オブジェクトは受け付けてくれますが、コントローラーがなく、何も起こりませんでした。YAMLを書く練習までがすべてで、そのYAMLが実際に動くかどうかは、確認する方法がありませんでした。
初回の起動には、4分ほどかかります。
用意されているもの
네임스페이스 argo 권한도 붙어 있어 바로 낼 수 있습니다
CLI argo argo submit / list / get / logs
아티팩트 저장소 minio 단계 사이에 파일을 주고받습니다
미리 받은 이미지 busybox:1.36 · alpine:3.20
このコードブロックの韓国語は、argoネームスペースには権限も付いていてすぐに提出できること、minioは、ステップ間でファイルを受け渡すアーティファクトストアであること、イメージはあらかじめ取得済みであることを説明しています。
目標
ワークフローの骨格から、失敗を扱う場所まで、実際に動かして確認します。
ステップ
- ワークフローを1つ実行して、結果を残してください(保存先:
/root/capa/run.txt)。 - DAGで依存関係を作り、並列で動くことを残してください(保存先:
/root/capa/dag.txt)。 - パラメーターを渡して、結果を受け取り、残してください(保存先:
/root/capa/params.txt)。 - アーティファクトを次のステップに渡して、残してください(保存先:
/root/capa/artifacts.txt)。 retryStrategyで、実際にリトライが動くことを残してください(保存先:/root/capa/retry.txt)。onExitが、失敗したときも動くことを残してください(保存先:/root/capa/exit.txt)。WorkflowTemplateを作成して再利用し、結果を残してください(保存先:/root/capa/template.txt)。workflows_run=、retry_attempts=、exit_ran=yesの3行と説明を書いてください(保存先:/root/capa/report.md)。
参考
argo submit -n argo <파일> --wait(プレースホルダーはファイル名です)で提出して、終わるまで待ちます。argo get -n argo @latestでステップごとの状態を、argo logs -n argo @latestでログを見ます。- 1つのステップに90秒あります。各ワークフローがその中に終わるように、
sleepを短くしてください。 - よくある間違い:
entrypointが指す名前が、templatesの中にないことです。そうすると、ワークフローは開始すらできません。 - よくある間違い: DAGの開始ノードに
dependenciesを付けることです。誰も満たせず、永遠に待機します。
本当に動く
ワークフローを1つ実行して、結果を残してください(保存先: /root/capa/run.txt)。
argo submit --waitで提出し、終わったあとで、argo getとkubectl get podで確認してください。
依存関係が順序を作る
DAGで依存関係を作り、並列で動くことを残してください(保存先: /root/capa/dag.txt)。
dependenciesがないタスクは、同時に開始します。開始時刻を比べてみてください。
値を受け渡す
パラメーターを渡して、結果を受け取り、残してください(保存先: /root/capa/params.txt)。
outputs.parametersのvalueFrom.pathでファイルを読むか、scriptテンプレートの標準出力をresultとして受け取ります。
ファイルを次のステップに渡す
アーティファクトを次のステップに渡して、残してください(保存先: /root/capa/artifacts.txt)。
outputs.artifactsで出力し、inputs.artifactsのfromで受け取ります。ストアを経由していきます。
失敗したらもう一度やってみる
retryStrategyで、実際にリトライが動くことを残してください(保存先: /root/capa/retry.txt)。
retryStrategy.limitは、リトライの回数です。最初の試行はここに含まれません。
失敗しても動く場所
onExitが、失敗したときも動くことを残してください(保存先: /root/capa/exit.txt)。
onExitは、ワークフローが失敗しても動きます。{{workflow.status}}で結果がわかります。
定義を再利用する
WorkflowTemplateを作成して再利用し、結果を残してください(保存先: /root/capa/template.txt)。
WorkflowTemplateを作成して、templateRefで指してください。
何を学んだか
workflows_run=、retry_attempts=、exit_ran=yesの3行と説明を書いてください(保存先: /root/capa/report.md)。
workflows_run=、retry_attempts=、exit_ran=yesの3行と説明を書いてください。