作者:Alex Collins
自三年前成立[1]以来,Argo Workflows[2]取得了令人难以置信的成就,我们感到无比自豪!
这一切都在支持我们——我们宣布Argo Workflows 3.0版。
Argo Workflows是云原生工作流引擎,可以运行10000个并发工作流,每个工作流有1000个步骤。
Argo被用于CERN的“发现新物理”,用于CoreWeave的3D渲染(在1000个节点的集群上使用6000个GPU),以及Intuit的机器学习和数据处理平台。Argo Workflows在生产中得到了超过100家企业的积极应用,包括Adobe、阿里云、贝莱德、Capital One、Data Dog、Datastax、谷歌、GitHub、IBM、Intuit、NVIDIA、SAP、New Relic和RedHat。
当我们询问使用Kubeflow、Apache气流、AWS Batch、AWS Lambda、KNative、TektonCD和Jenkins等工具的用户的原因时,他们说他们喜欢Argo,因为它是云原生、简单、快速、可伸缩性和性价比高。
在过去的12个月里,每个版本都有一些主要的新特性:
Argo Workflows v3.0带来了一个新的UI,现在也支持Argo Events!UI也更加健壮和可靠。
event-flow页面允许用户了解事件源和传感器如何连接在一起,以及如何链接触发器创建的工作流,以及在看到消息时显示动画。
Event-flow
你可以在用户界面中直接创建和更新事件源和传感器,使用与工作流相同的可视化语言:
Event Sources
我们添加了一些简单的小部件,你可以使用它们来嵌入工作流或由工作流模板或cron工作流创建的最新工作流的状态和进度:
Widgets
与手工编辑工作流不同,你还可以通过模板提交:
Workflow Creator
日志查看器已经更新,使你可以更容易地查看init和等待容器(帮助调试工件问题)。它也允许你跟踪整个工作流程:
Log Viewer
如果你想亲自尝试它,你可以查看一下测试环境[4]。
3.0版本引入了热备工作流控制器特性,通过利用Kubernetes领导人选举特性实现高可用性和快速恢复。默认安装支持领袖选举,其中一个有pod,即领袖。当控制器pod崩溃时,Kubernetes将重新启动它。为了减少启动时间,现在可以运行两个pod。第二个pod会处于热备状态如果首领死了,它会立即接管。
kubectl scale deployment/workflow-controller --replicas=2
Argo Workflows 3.0引入了默认工件仓库引用和key-only工件,这两个新特性一起工作。
因此,我们不再需要复制清单中的non-key元素,从而减少了工作流所需的磁盘空间。
我们将重命名Argo Workflows库为argo-workflows而不是argo。新名称清楚地表明,这是Argo Workflows的仓库,而不是整个Argo项目。
当仓库被重命名时,Github会自动转发,所以用户不会受到重大影响。
在2020年,我们迁移到Go模块。不幸的是,迁移到Go模块是个重大变化,我们没有完成工作,在没有一些hackery下是不能够go get github.com/argoproj/argo。v3版本将解决这个问题。
我们计划为v2.12提供长期支持。在6个多月的时间里,将会修复bug,但不会有新的功能。
我们期望的后移植内容:
我们不打算进行后移植:
Argo Workflows v3.1将包含增强功能,使用工件和条件工件更容易地编写扇出扇入工作流。
一个人是完成不了这些的,因此在核心团队之外,我们必须鸣谢以下主要贡献者:
[1]
成立: https://blog.argoproj.io/introducing-argo-a-container-native-workflow-engine-for-kubernetes-55c0b4b76fac
[2]
Argo Workflows: https://github.com/argoproj/argo-workflows
[3]
成为CNCF孵化项目: https://www.cncf.io/blog/2020/04/07/toc-welcomes-argo-into-the-cncf-incubator/
[4]
测试环境: https://workflows.apps.argoproj.io/