什么是Argo Workflows?
Argo Workflows是一个开源的容器原生工作流引擎,用于在Kubernetes上编排并行作业。 Argo Workflows是作为Kubernetes CRD(自定义资源定义)实现的。
- 定义工作流,其中每个步骤都是一个容器。
- 将多步骤工作流建模为任务序列,或使用有向无环图(DAG)捕捉任务之间的依赖关系。
- 使用Kubernetes上的Argo Workflows,轻松运行计算密集型作业,如机器学习或数据处理,在短时间内完成。
Argo是云原生计算基金会(CNCF)的毕业项目。
使用场景
为什么选择Argo Workflows?
- Argo Workflows是Kubernetes上最受欢迎的工作流执行引擎。
- 轻量级、可扩展且易于使用。
- 从头开始为容器设计,没有传统VM和基于服务器环境的开销和限制。
- 云无关,可以在任何Kubernetes集群上运行。
尝试Argo Workflows
你可以通过以下方式尝试Argo Workflows:
谁在使用Argo Workflows?
生态系统
以下仅列举了一些使用或依赖Argo Workflows的项目(完整列表在此):
- Argo Events
- Couler
- Hera
- Katib
- Kedro
- Kubeflow Pipelines
- Netflix Metaflow
- Onepanel
- Orchest
- Piper
- Ploomber
- Seldon
- SQLFlow
客户端库
查看我们的Java、Golang和Python客户端。
快速入门
文档
特性
Argo Workflows提供的部分功能列表:
- 用于可视化和管理工作流的用户界面
- 支持多种制品存储(S3、Artifactory、阿里云OSS、Azure Blob存储、HTTP、Git、GCS、原始文件)
- 工作流模板化,可在集群中存储常用工作流
- 执行后归档工作流以便后续访问
- 使用cron调度工作流
- 提供REST API的服务器接口(HTTP和GRPC)
- 基于DAG或步骤声明工作流
- 步骤级输入输出(制品/参数)
- 循环
- 参数化
- 条件语句
- 超时设置(步骤和工作流级别)
- 重试机制(步骤和工作流级别)
- 重新提交(带记忆)
- 暂停和恢复
- 取消
- K8s资源编排
- 退出钩子(通知、清理)
- 已完成工作流的垃圾回收
- 调度(亲和性/容忍度/节点选择器)
- 卷(临时/现有)
- 并行限制
- 守护进程步骤
- Docker中的Docker(DinD)
- 脚本步骤
- 事件发送
- Prometheus指标
- 多种执行器
- 多种Pod和工作流垃圾回收策略
- 自动计算每个步骤的资源使用情况
- Java/Golang/Python SDK
- 支持Pod中断预算
- 单点登录(OAuth2/OIDC)
- Webhook触发
- 命令行界面
- 内置和自定义Prometheus指标
- 支持Windows容器
- 嵌入式小部件
- 多路复用日志查看器
社区会议
我们每月举行社区会议,我们和社区成员展示演示并讨论项目的现状和未来。欢迎加入我们! 关于社区会议信息、会议记录和录音,请点击此处。
参与Argo Workflows受CNCF行为准则约束。
社区博客和演示
- Awesome-Argo:Argo相关精选项目和资源列表
- 自动化一切 - 如何结合Argo Events、Workflows & Pipelines、CD和Rollouts
- Argo Workflows和Pipelines - CI/CD、机器学习和其他Kubernetes工作流
- Argo Ansible角色:在OpenShift上配置Argo Workflows
- Argo Workflows vs Apache Airflow
- Kubernetes上的CI/CD与Argo
- 使用Argo Workflows定义CI/CD流水线
- Manning出版社的分布式机器学习模式
- 跨多个Kubernetes集群运行Argo Workflows
- 开源模型管理综述:Polyaxon、Argo和Seldon
- 使用可扩展数据工作流在35分钟内生成200个OpenStreetMap提取
- Argo集成评述
- Joe Beda的TGI Kubernetes:Argo工作流系统
项目资源
安全
请参阅SECURITY.md。