概念 平台工程

Argo Workflows:Kubernetes 原生工作流架构、生产实践与采购指南

Argo Workflows是运行在Kubernetes上的容器工作流引擎,支持DAG和Steps编排。本文说明其核心机制、AI训练与批量推理场景、部署组件及与Airflow、Kubeflow Pipelines的选择边界。

Argo WorkflowsKubernetes 工作流DAG 编排AI 任务编排MLOpsGPU 调度Workflow ControllerArgo ServerKubernetes CRD
Slug
argo-workflows
更新
2026-07-07
来源
5
关系
3

Argo Workflows 是什么:摘要与决策结论

摘要 / 导语:Argo Workflows 是 Kubernetes 原生的容器工作流引擎,以 Workflow CRD 描述任务状态和执行逻辑,由 Workflow Controller 协调 Pod 运行,支持 Steps、DAG、参数、制品、重试、条件和定时触发。它适合已经以 Kubernetes 为主要运行底座的批处理、数据处理和 AI/ML 流水线。

Argo Workflows 解决的是“容器任务如何按依赖关系运行和恢复”,并不自动提供完整的 MLOps、数据治理、模型注册、特征平台或高级批调度能力。采购决策不能只看 YAML 能否运行,而要验证控制面规模、对象存储带宽、GPU 排队、公平性、安全隔离、失败恢复和运维复杂度。

优先考虑:团队已有成熟 Kubernetes,任务天然容器化,需要按 DAG 并行运行并精细申请 CPU、内存或 GPU。

谨慎采用:主要是传统数据仓库调度、非容器作业,或团队缺少 Kubernetes 运营能力时,应同时评估 Airflow、托管编排服务等方案。

决策原则:Argo 是工作流控制面,不是 GPU 批调度器,也不是完整 AI 平台;缺失能力应在总体架构和预算中明确补齐。

架构组件与能力边界

组件 / 对象主要职责生产设计要点
Workflow CRD同时保存工作流定义和执行状态大规模节点状态会增加 Kubernetes API / etcd 压力,需要评估状态卸载
Workflow Controller监听 Workflow 与 Pod,执行协调、重试和状态更新规划高可用、并发、队列处理、资源限制和版本升级
Argo Server提供 API、Web UI、认证模式和工作流访问入口生产通常需要 TLS、SSO / 身份集成、RBAC 和网络策略;Controller 可独立运行
WorkflowTemplate / ClusterWorkflowTemplate复用命名空间级或集群级模板建立版本、审批、租户边界和变更发布流程
CronWorkflow按计划创建 Workflow处理并发策略、错过计划、时区、重复触发和补跑
Artifact Repository保存任务输入输出、模型、数据分片或归档日志对象存储权限、带宽、生命周期、加密和大文件传输是关键成本项
Archive / Node Status Offload把历史工作流或大规模节点状态存入关系数据库数据库高可用、容量、备份、连接数和清理策略需纳入平台设计

Argo Workflows、Argo CD、Argo Events 和 Argo Rollouts 属于同一 Argo 项目下的不同组件:Workflows 负责任务编排,CD 负责 GitOps 持续交付,Events 负责事件源与触发,Rollouts 负责渐进式发布。它们可以组合,但不会因为安装 Workflows 而自动具备其他组件能力。

执行模型与常用工作流模式

  • Steps:按步骤组组织顺序和并行任务,适合线性阶段清晰、可读性优先的流程。
  • DAG:用依赖关系描述有向无环图,适合存在多路并行、汇聚和复杂拓扑的任务。
  • 参数:适合传递小型结构化值、路径和控制信息;不应用参数承载大型数据。
  • 制品:通过对象存储传递文件、数据分片、模型权重和报告;应避免不必要的重复上传下载。
  • 重试与退出处理:可设置重试策略、超时、退出处理器和生命周期钩子,但有副作用的任务仍需应用级幂等。
  • 循环与扇出:可按列表或参数批量生成并行节点,需要同时设置工作流、命名空间和集群级并发上限。
  • ContainerSet:在适用场景下可让多个容器在同一 Pod 内协作,减少部分 Pod 启动和数据搬运开销,但会改变隔离与失败边界。

并非所有模板都必然对应一个长期独立 Pod,但常见容器模板会创建 Pod。工作流结束后 Pod 和 Workflow 对象是否删除,取决于 Pod GC、TTLStrategy 和归档配置;生产环境必须显式设计清理策略,不能假设系统会自动、立即释放全部对象和存储。

适用场景与替代方案怎么选

需求优先评估判断依据
Kubernetes 上的多步骤容器批任务Argo WorkflowsDAG、Pod 资源声明、制品和重试与 Kubernetes 深度结合
简单、单步骤、定时容器任务Kubernetes Job / CronJob无需额外工作流控制面,复杂度和运维成本更低
数据仓库与大量数据库 / SaaS 调度Apache Airflow 等数据编排平台连接器生态、Python DAG、回填与数据团队工作方式可能更匹配
面向数据科学家的完整 ML Pipeline 体验Kubeflow Pipelines 或其他 MLOps 平台组件、实验元数据、模型生命周期和 UI 能力通常更完整
CI/CD 与供应链任务Tekton、Argo Workflows 或现有 CI 平台根据触发、制品签名、凭据、开发者体验和既有生态比较
大规模 GPU 队列、公平共享与配额Argo + Kueue / Volcano 等调度能力Argo 编排依赖,批调度器负责排队、配额、Gang Scheduling 和公平性

工具之间不一定互斥。例如 Airflow 可以触发 Kubernetes 工作负载,MLOps 平台也可以使用 Argo 或其他后端执行引擎。应先明确谁负责任务定义、谁负责资源排队、谁负责实验与模型元数据,避免多个控制面重复建设。

生产级部署需要补齐哪些设计

  • 高可用:规划 Workflow Controller 和 Argo Server 的副本、选主、Pod 反亲和、PodDisruptionBudget 及故障恢复。
  • 命名空间与 RBAC:按团队或项目隔离 Namespace;工作流使用专用 ServiceAccount;禁止默认高权限。
  • 认证与网络:Argo Server 启用 TLS 和适合企业身份体系的认证模式,配合 NetworkPolicy、Ingress 和审计。
  • 制品与日志:配置 S3 兼容存储、GCS、Azure Blob 等制品库;日志是否归档需要独立设计,Workflow Archive 不等于 Pod 日志归档。
  • 状态与历史:大工作流评估 Node Status Offloading;长期查询使用 Workflow Archive;数据库需要备份和生命周期策略。
  • 垃圾回收:配置 Pod GC、TTLStrategy、Workflow 清理和 Artifact GC,防止 Pod、CRD、日志与对象存储持续膨胀。
  • 并发与配额:限制全局、命名空间、工作流和模板并发;结合 ResourceQuota、LimitRange 和批调度器防止资源争抢。
  • 镜像供应链:使用固定版本或摘要、私有镜像仓库、漏洞扫描、签名验证和准入策略,避免工作流任意拉取不可信镜像。
  • 可观测性:采集 Controller、Workflow、Pod、队列等待、失败原因、制品传输和资源利用率,建立业务级 SLA 看板。

GPU、存储、控制面与 TCO 怎么规划

GPU 与批调度

Argo 通过 Pod 的 Resource Requests / Limits 申请 GPU,实际放置由 Kubernetes Scheduler 及其扩展负责。节点标签、污点与容忍、亲和性、拓扑、GPU 共享或切分能力都属于集群资源设计。多机分布式训练还需考虑 Gang Scheduling、网络拓扑、RDMA、共享存储和故障重启,不能只配置一个 nvidia.com/gpu 数量。

制品与数据路径

大模型权重和训练数据可能远大于工作流本身。总耗时往往受镜像拉取、对象存储读取、检查点写入和跨节点数据传输影响。PoC 应记录每个阶段的数据量与带宽,而不是只统计训练内核时间。

控制面规模

大规模扇出会产生大量 Workflow 节点、Pod 事件和状态更新,对 Controller、Kubernetes API Server 与 etcd 形成压力。应测试最大并行节点数、工作流创建速率和历史对象数量,并验证状态卸载和 GC 后的稳定性。

三年总拥有成本

除开源软件本身外,还应纳入 Kubernetes 集群、GPU / CPU 节点、对象存储、关系数据库、镜像仓库、日志监控、备份、安全工具、平台开发和 7×24 运维。开源许可成本为零不等于平台运营成本为零。

采购与选型应重点问什么

  1. 业务适配:工作负载是否已经容器化并以 Kubernetes 为长期底座?是否存在足够复杂的依赖需要 Argo?
  2. 平台边界:方案是否明确区分工作流、批调度、实验追踪、模型注册、数据治理和 GitOps 的责任组件?
  3. 规模证据:供应商是否用接近生产的 DAG 节点数、提交速率、并发和历史量验证控制面?
  4. GPU 规划:是否考虑队列、公平共享、拓扑、多机训练、显存和失败重启,而不是只统计 GPU 卡数?
  5. 数据链路:对象存储、共享文件系统、镜像仓库和网络是否经过端到端带宽测试?
  6. 安全隔离:能否展示 SSO、RBAC、ServiceAccount、Secret、NetworkPolicy 和镜像准入的真实配置?
  7. 运营能力:是否覆盖升级、备份、GC、状态卸载、归档、告警、故障定位和容量扩展?
  8. 退出与兼容:Workflow 模板、参数、制品和元数据能否导出;定制是否依赖不可替换的私有扩展?

PoC 与验收指标怎么设

验收维度建议指标验证方式
功能完整性DAG、参数、制品、重试、超时、条件、定时和人工门禁用真实 Pipeline 跑通正常与异常分支
控制面性能提交速率、调度延迟、最大节点数、Controller 队列和 API 错误率逐级扩大并发和扇出规模,观察恢复与稳定性
资源效率GPU 排队、GPU 利用率、Pod 启动、镜像拉取和空闲时长使用真实镜像、模型和调度策略压测
数据性能制品上传下载吞吐、检查点耗时、失败重传和存储增长使用接近生产大小的数据与模型文件
可靠性Controller / Server 重启恢复、任务幂等、断点恢复、重复执行率注入节点、网络、存储和数据库故障
安全与隔离越权拦截、租户隔离、凭据保护、审计和镜像策略覆盖率按不同角色和 Namespace 执行权限测试
可运营性升级、回滚、归档、GC、备份恢复和故障定位时间由实际平台运维团队完成演练

验收不应只证明示例 Workflow 能成功运行,还要证明在目标规模、故障条件和企业安全体系下可持续运营。

FAQ:Argo Workflows 常见问题

Argo Workflows 是完整的 MLOps 平台吗?

不是。它主要解决容器工作流定义与执行。数据版本、实验追踪、特征管理、模型注册、在线部署和模型治理需要其他组件或平台能力补充。

Argo Workflows 可以直接解决 GPU 排队和公平共享吗?

Argo 可以声明 GPU 资源并控制工作流并发,但高级队列、配额、公平性、优先级和 Gang Scheduling 通常需要 Kubernetes 调度扩展或专用批调度器。

工作流结束后 Pod 会自动删除吗?

取决于配置。生产环境应明确设置 Pod GC、TTLStrategy、Workflow 清理和制品生命周期;否则历史对象、日志和制品可能持续占用控制面与存储。

已经使用 Airflow,还需要 Argo Workflows 吗?

不一定。若 Airflow 已满足需求,可以继续由其编排;如果大量任务是 Kubernetes 原生容器、需要细粒度 Pod 资源和复杂并行 DAG,可评估由 Airflow 触发 Argo 或将部分工作负载迁移,但应避免双重状态管理。

平台建议

评估AI任务编排与GPU集群方案

提供现有Kubernetes环境、训练或批量推理任务、GPU规模及存储方式,可进一步评估Argo Workflows、任务队列和集群资源治理方案。

获取平台建议浏览相关方案