LabHub
学习 学习路径 课程

CAPA — Argo 项目认证助理

亲眼看工作流真的在跑

在 LabHub 中继续学习

本实验运行在真实的 Argo Workflows 上

VM 内实际运行着工作流控制器、argo-server 和 artifact 存储(minio)。 提交 workflow 后,控制器会启动 Pod、推进步骤、在失败时重试并留下日志。

前一个模块的 workflow 实验运行在假集群中。它能接收对象,但由于**没有控制器, 什么也不会发生。**你只能练习编写 YAML,却无法确认它是否真的能运行。

首次启动大约需要 4 分钟。

已准备的内容

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

目标

从 workflow 骨架到失败处理位置,全部通过真实运行来确认。

步骤

  1. 运行一个 workflow,并把结果保存到 /root/capa/run.txt
  2. 用 DAG 创建依赖关系,并把并行运行的证据保存到 /root/capa/dag.txt
  3. 传入参数、接收结果,并保存到 /root/capa/params.txt
  4. 把 artifact 传给下一步,并保存到 /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.md 中写入 workflows_run=retry_attempts=exit_ran=yes 三行及说明。

参考

让它真实运行

运行一个 workflow,并把结果保存到 /root/capa/run.txt

argo submit --wait 提交,结束后通过 argo getkubectl get pod 确认。

依赖关系决定顺序

用 DAG 创建依赖关系,并把并行运行的证据保存到 /root/capa/dag.txt

没有 dependencies 的 task 会同时开始。请比较它们的启动时间。

传递并接收值

传入参数、接收结果,并保存到 /root/capa/params.txt

可通过 outputs.parametersvalueFrom.path 读取文件,或把 script template 的标准输出作为 result 接收。

把文件传给下一步

把 artifact 传给下一步,并保存到 /root/capa/artifacts.txt

outputs.artifacts 输出,再通过 inputs.artifactsfrom 接收。文件会经过存储服务。

失败后再次尝试

使用 retryStrategy 实际触发重试,并保存到 /root/capa/retry.txt

retryStrategy.limit 表示重试次数,不包含第一次尝试。

失败时也会运行的位置

确认 onExit失败时也会运行,并保存到 /root/capa/exit.txt

onExit 即使在 workflow 失败时也会运行。可通过 {{workflow.status}} 获取结果。

复用定义

创建可复用的 WorkflowTemplate,并保存到 /root/capa/template.txt

创建 WorkflowTemplate,再用 templateRef 引用它。

总结学到的内容

/root/capa/report.md 中写入 workflows_run=retry_attempts=exit_ran=yes 三行及说明。

写入 workflows_run=retry_attempts=exit_ran=yes 三行及说明。