argoproj/argo-workflows
GitHub: argoproj/argo-workflows
Kubernetes 原生的工作流引擎,以 CRD 形式实现复杂任务的容器化编排与自动化执行。
Stars: 16514 | Forks: 3494
[](https://github.com/argoproj/argo-workflows/actions/workflows/snyk.yml?query=branch%3Amain)
[](https://bestpractices.coreinfrastructure.org/projects/3830)
[](https://api.securityscorecards.dev/projects/github.com/argoproj/argo-workflows)
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fargoproj%2Fargo-workflows?ref=badge_shield)
[](https://argoproj.github.io/community/join-slack)
[](https://x.com/argoproj)
[](https://www.linkedin.com/company/argoproj/)
[](https://bsky.app/profile/argoproj.bsky.social)
[](https://github.com/argoproj/argo-workflows/releases/latest)
[](https://artifacthub.io/packages/helm/argo/argo-workflows)
## 什么是 Argo Workflows?
Argo Workflows 是一个开源的容器原生工作流引擎,用于在 Kubernetes 上编排并行作业。
Argo Workflows 实现为 Kubernetes CRD (Custom Resource Definition)。
* 定义工作流,其中每一步都是一个容器。
* 将多步骤工作流建模为一系列任务,或使用有向无环图 (DAG) 捕获任务之间的依赖关系。
* 在 Kubernetes 上使用 Argo Workflows,可以轻松地在短时间内运行机器学习或数据处理等计算密集型作业。
Argo 是 [Cloud Native Computing Foundation (CNCF)](https://cncf.io/) 的毕业项目。
## 使用案例
* [机器学习流水线](https://argo-workflows.readthedocs.io/en/latest/use-cases/machine-learning/)
* [数据和批处理](https://argo-workflows.readthedocs.io/en/latest/use-cases/data-processing/)
* [基础设施自动化](https://argo-workflows.readthedocs.io/en/latest/use-cases/infrastructure-automation/)
* [CI/CD](https://argo-workflows.readthedocs.io/en/latest/use-cases/ci-cd/)
* [其他使用案例](https://argo-workflows.readthedocs.io/en/latest/use-cases/other/)
## 为什么选择 Argo Workflows?
* Argo Workflows 是 Kubernetes 上最流行的工作流执行引擎。
* 轻量级、可扩展且易于使用。
* 通过 [适用于 Argo Workflows 的 Hera Python SDK](https://hera.readthedocs.io/en/stable/) 支持 Python 用户。
* 专为容器从头设计,没有传统 VM 和基于服务器的环境的开销和限制。
* 与云无关,可以在任何 Kubernetes 集群上运行。
[阅读我们在最新调查中的用户反馈](https://blog.argoproj.io/argo-workflows-events-2023-user-survey-results-82c53bc30543)
## 试用 Argo Workflows
您可以通过以下方式试用 Argo Workflows:
1. [交互式培训材料](https://killercoda.com/argoproj/course/argo-workflows/)
2. [访问演示环境](https://workflows.apps.argoproj.io/workflows/argo)

## 谁在使用 Argo Workflows?
[大约有 200 多个组织正式在使用 Argo Workflows](USERS.md)
## 生态系统
仅列出部分使用或依赖于 Argo Workflows 的项目 (完整列表[在此](https://github.com/akuity/awesome-argo#ecosystem-projects)):
* [Argo Events](https://github.com/argoproj/argo-events)
* [Couler](https://github.com/couler-proj/couler)
* [Hera](https://github.com/argoproj-labs/hera-workflows)
* [Katib](https://github.com/kubeflow/katib)
* [Kedro](https://kedro.readthedocs.io/en/stable/)
* [Kubeflow Pipelines](https://github.com/kubeflow/pipelines)
* [Netflix Metaflow](https://metaflow.org)
* [Onepanel](https://github.com/onepanelio/onepanel)
* [Orchest](https://github.com/orchest/orchest/)
* [Piper](https://github.com/quickube/piper)
* [Ploomber](https://github.com/ploomber/ploomber)
* [Seldon](https://github.com/SeldonIO/seldon-core)
* [SQLFlow](https://github.com/sql-machine-learning/sqlflow)
## 客户端库
查看我们的 [Java, Golang, Python (Hera), 和 Typescript (Juno) 客户端](docs/client-libraries.md)。
## 快速开始
* [从这里开始](https://argo-workflows.readthedocs.io/en/latest/quick-start/)
* [演练示例](https://argo-workflows.readthedocs.io/en/latest/walk-through/)
## 文档
[查看文档](https://argo-workflows.readthedocs.io/en/latest/)
## 功能特性
Argo Workflows 提供的功能列表 (不完全):
* 用于可视化和管理 Workflows 的 UI
* Artifact 支持 (S3, Artifactory, Alibaba Cloud OSS, Azure Blob Storage, HTTP, Git, GCS, raw, plugins)
* Workflow 模板,用于在集群中存储常用 Workflows
* 执行后归档 Workflows 以供后续访问
* 使用 cron 调度 Workflows
* 提供 REST API 的服务接口 (HTTP 和 GRPC)
* 基于 DAG 或 Steps 的工作流声明
* 步骤级别的输入和输出 (artifacts/parameters)
* 循环
* 参数化
* 条件判断
* 超时 (步骤 & 工作流级别)
* 重试 (步骤 & 工作流级别)
* 重新提交 (memoized)
* 暂停 & 恢复
* 取消
* K8s 资源编排
* 退出钩子 (notifications, cleanup)
* 已完成工作流的垃圾回收
* 调度 (affinity/tolerations/node selectors)
* Volumes (ephemeral/existing)
* 并行限制
* Daemoned 步骤
* DinD (docker-in-docker)
* Script 步骤
* 事件发射
* Prometheus 指标
* 多种 executor
* 多种 Pod 和 Workflow 垃圾回收策略
* 自动计算每一步的资源使用量
* Java, Golang, Python (Hera), 和 Typescript (Juno) SDK
* Pod Disruption Budget 支持
* 单点登录 (OAuth2/OIDC)
* Webhook 触发
* CLI
* 开箱即用和自定义 Prometheus 指标
* Windows 容器支持
* 嵌入式小组件
* 多路日志查看器
## 社区会议
我们每月举办社区会议,我们和社区在会上展示演示并讨论项目的现状和未来。欢迎加入我们!
有关社区会议的信息、纪要和录音,请[查看这里](https://bit.ly/argo-wf-cmty-mtng)。
参与 Argo Workflows 受 [CNCF 行为准则](https://github.com/cncf/foundation/blob/master/code-of-conduct.md) 管辖。
## 社区博客和演讲
* [Awesome-Argo: 精选的 Argo 相关项目和资源列表](https://github.com/terrytangyuan/awesome-argo)
* [自动化一切 - 如何结合 Argo Events, Workflows & Pipelines, CD, 和 Rollouts](https://youtu.be/XNXJtxkUKeY)
* [Argo Workflows 和 Pipelines - CI/CD, 机器学习, 以及其他 Kubernetes 工作流](https://youtu.be/UMaivwrAyTA)
* [Argo Ansible role: 在 OpenShift 上配置 Argo Workflows](https://medium.com/@marekermk/provisioning-argo-on-openshift-with-ansible-and-kustomize-340a1fda8b50)
* [Argo Workflows vs Apache Airflow](http://bit.ly/30YNIvT)
* [超越原型: 使用 Metaflow 和 Argo 构建生产就绪的机器学习系统](https://github.com/terrytangyuan/public-talks/tree/main/talks/kubecon-na-2023-metaflow-argo)
* [在 Kubernetes 上使用 Argo 进行 CI/CD](https://medium.com/@bouwe.ceunen/ci-cd-with-argo-on-kubernetes-28c1a99616a9)
* [使用 Argo Workflows 定义您的 CI/CD 流水线](https://haque-zubair.medium.com/define-your-ci-cd-pipeline-with-argo-workflows-25aefb02fa63)
* [Manning Publication 出版的分布式机器学习模式](https://github.com/terrytangyuan/distributed-ml-patterns)
* [构建云原生 AI 平台](https://github.com/terrytangyuan/public-talks/tree/main/talks/platform-con-2024-engineering-cloud-native-ai-platform)
* [使用 Argo 和 Katib 管理数千个自动化机器学习实验](https://github.com/terrytangyuan/public-talks/blob/main/talks/argocon-automl-experiments-2022)
* [使用 Argo Workflows 重建自动驾驶数据流水线](https://www.youtube.com/watch?v=oTgIQxbsLhU)
* [利用 Argo Workflows 彻底改变科学模拟](https://www.youtube.com/watch?v=BYVf7GhfiRg)
* [跨多个 Kubernetes 集群运行 Argo Workflows](https://admiralty.io/blog/running-argo-workflows-across-multiple-kubernetes-clusters/)
* [扩展 Kubernetes: 使用 Spark 和 Argo Workflow 管理大规模批处理作业的最佳实践](https://www.youtube.com/watch?v=KqEKRPjy4aE)
* [开源模型管理综述: Polyaxon, Argo, 和 Seldon](https://www.anaconda.com/blog/developer-blog/open-source-model-management-roundup-polyaxon-argo-and-seldon/)
* [使用可扩展数据工作流在 35 分钟内生成 200 个 OpenStreetMap 提取数据](https://www.interline.io/blog/scaling-openstreetmap-data-workflows/)
* [Kubernetes 上生产就绪的 AI 平台](https://github.com/terrytangyuan/public-talks/tree/main/talks/kubecon-europe-2024-production-ai-platform-on-k8s)
* [Argo 集成审查](http://dev.matt.hillsdon.net/2018/03/24/argo-integration-review.html)
* TGI Kubernetes 与 Joe Beda: [Argo workflow 系统](https://www.youtube.com/watch?v=M_rxPPLG8pU&start=859)
## 项目资源
* [Argo Project GitHub 组织](https://github.com/argoproj)
* [Argo 网站](https://argoproj.github.io/)
* [Argo Slack](https://argoproj.github.io/community/join-slack)
## 安全
请参阅 [SECURITY.md](SECURITY.md).
标签:Argo Workflows, Argo项目, DNS解析, EVTX分析, Go语言, MLOps, Python工具, 任务调度, 侦察, 子域名突变, 容器编排, 工作流引擎, 并行计算, 开源项目, 批处理, 日志审计, 流水线, 程序破解, 自动化运维, 自定义资源定义, 请求拦截, 逆向工具