游乐游手机版
首页/系统平台/文章详情

Argo工作流基于Kubernetes原生架构正式加入CNCF孵化器

时间:2026-08-21 17:33
Argo(https: argoproj github io projects argo) 项目是一组 Kubernetes 原生工具集合,主要用于在 Kubernetes 集群中运行、编排和管理作业与应用程序。Argo 提供了在 Kubernetes 上构建工作负载和应用的三种计算模式的灵活组合

Argo(https://argoproj.github.io/projects/argo) 项目是一组 Kubernetes 原生工具集合,主要用于在 Kubernetes 集群中运行、编排和管理作业与应用程序。Argo 提供了在 Kubernetes 上构建工作负载和应用的三种计算模式的灵活组合方式 – 服务模式、工作流模式以及事件驱动模式 – 。所有 Argo 工具均以控制器和自定义资源的形式实现,能够更好地融入云原生与 K8s 生态。

  • 更多参考:
    • Argo快速安装与使用

Argo 项目:面向 K8s 的工作流

DAG (Directed acyclic graph,有向无环图) 是计算机图论中的经典模型,常用于描述存在依赖关系的数据处理任务,例如音视频转码、机器学习流水线、大数据分析处理等场景。

Argo 最早在社区中脱颖而出,核心原因之一就是 Workflow 能力。其 Workflow 项目的名称本身就叫 Argo,也是 Argo 组织最早推出的项目。Argo Workflow 聚焦于 Kubernetes Native Workflow 的设计,具备声明式工作流机制,能够通过 CRD 模式与 Kubernetes 集群深度集成。每个任务都会以 Pod 形式运行,Workflow 提供 DAG 等依赖拓扑能力,同时还能借助 Workflow Template CRD 实现多个 Workflow 之间的复用、组合与编排。

上图展示的是一个典型的 DAG 结构。Argo Workflow 可以根据用户提交的编排模板,快速构建出具有前后依赖关系的工作流。Argo Workflow 能够自动处理这些任务依赖,并按照用户设定的顺序有序执行各个步骤。

Argo CD 是另一个近年非常受关注的子项目。Argo CD 主要面向 GitOps 流程,解决了通过 Git 一键部署到 Kubernetes 的需求,同时支持基于版本标识进行快速追踪与回滚。Argo CD 还具备多集群部署能力,可有效打通多个 Kubernetes 集群中同一应用的持续交付与统一发布问题。

Argo Event 提供了基于事件依赖关系的声明式管理能力,以及面向多种事件源的 Kubernetes 资源触发器。Argo Events 的典型用法,是触发 Argo Workflow 执行业务流程,并为通过 Argo CD 部署的长期运行服务生成对应事件。

Argo Rollout 则是为了解决多样化发布方式而诞生的项目。Argo Rollout 支持多种灰度发布策略,并可结合 Ingress、Service Mesh 等能力完成流量治理、灰度验证与发布测试。

Argo 的各个子项目既可以独立使用,也可以协同配合。通常来说,多个子项目组合使用时,能够更充分地发挥 Argo 在 Kubernetes 工作流、GitOps 持续交付和事件驱动自动化方面的整体能力。

使用 Argo 中遇到的问题与解决方法

阿里云最早落地的是 Argo Workflow。在使用 Argo Workflow 的过程中,首先遇到的问题是权限管理。Argo Workflow 中每一个具体任务都是通过 Pod 执行,同时还会有一个 sidecar 容器负责监听主任务进度。这里 sidecar 的监听方式是通过 mount docker.sock 实现的,这会绕过 Kubernetes APIServer 的 RBAC 机制,因而无法对用户权限进行精细化控制。为了解决这一问题,我们与社区协作开发,实现了 Argo Kubernetes APIServer Native Executor 功能,使 sidecar 能够通过 service account 监听 APIServer,获取主容器的动态和信息,从而实现对 Kubernetes RBAC 的支持以及权限收敛。

在 DAG 解析过程中,Argo Workflow 会根据 Workflow label 扫描所有 Pod 状态,并据此决定下一步动作。不过,早期每次扫描都是串行执行的。当 Kubernetes 集群中的 Workflow 数量持续增多时,扫描速度会明显下降,导致工作流任务长时间处于等待状态。基于这一问题,我们开发了并行扫描功能,利用 goroutine 将所有扫描动作并行化,从而显著提升了工作流执行效率。原本需要运行 20 小时的任务,现在仅需 4 小时即可完成。该能力已经贡献给社区,并在 Argo Workflow v2.4 版本中正式发布。

在实际生产环境中,Argo Workflow 执行的步骤越多,占用的空间也越大。所有执行步骤都会记录在 CRD 的 Status 字段中。当任务数量超过 1000 步时,就可能出现单个对象过大,无法写入 ETCD,或者因流量过高而拖垮 APIServer 的情况。针对这一问题,我们与社区联合开发了状态压缩技术,可以对 Status 内容进行字符串压缩。压缩后的 Status 字段大小仅为原来的二十分之一,从而支撑了 5000 步以上的大型工作流稳定运行。

Argo 在基因数据处理场景的落地实践

AGS(阿里云基因计算服务)主要应用于基因组测序二级分析。通过 AGS 加速 API,只需 15 分钟即可完成一个 30X WGS 的基因比对、排序、去重和变异检测全流程。相比经典流程可实现 120 倍加速,较当前全球较快的 FPGA/GPU 方案仍可提升 2-4 倍。

通过分析个体基因序列中的突变机制,可为遗传病检测、肿瘤筛查等场景提供有力支撑,未来也将在临床医学与基因诊断领域发挥重要作用。人类全基因组约有 30 亿个碱基对,一个 30X 的 WGS 测序数据量大约为 100GB。AGS 在计算速度、精准度、成本、易用性以及与上游测序仪的整合能力方面具有明显优势,同时适用于 DNA 的 SNP/INDEL、CNV 结构变异检测,以及 DNA/RNA 病毒检测等多种应用场景。

AGS 工作流基于 argo 实现,为 Kubernetes 提供容器化的本地工作流程支持。工作流中的每一个步骤都被定义为容器,便于在云原生环境中实现标准化运行与统一编排。

工作流引擎通过 Kubernetes CRD(自定义资源定义)方式实现。因此,用户可以使用 kubectl 管理工作流,并与其他 Kubernetes 原生服务进行本地集成,例如 Volumes、Secrets 和 RBAC。工作流控制器提供了完整的工作流能力,包括参数替换、存储、循环以及递归工作流等功能。

阿里云在基因计算场景中使用 Argo Workflow,在 Kubernetes 集群上运行数据处理与分析业务,能够支持 5000 步以上的大型工作流,并可比传统数据处理方式实现百倍加速。通过定制化的 Workflow 引擎,基因数据处理效率得到了大幅提升,也进一步验证了 Argo 在复杂计算工作流场景中的落地价值。

作者简介:

陈显鹭,阿里云技术专家,深耕 Docker&Kubernetes 多年,是 Docker 多个项目的 Contributor,Kubernetes Group Member,《自己动手写 Docker》作者。专注于容器技术编排与基础环境研究,热爱钻研源代码,积极参与开源社区和开源项目研发。

郡宝,Kubernetes 项目贡献者,Kubernetes 和 Kubernetes-sigs 社区成员。在容器、K8S 领域拥有多年实践经验,目前就职于阿里巴巴云计算容器服务团队,主要研究方向包括容器存储、容器编排、AGS 产品等领域。

来源:https://apiv1.oschina.net/oschinapi/blog/detail?id=4964847
上一篇Harbor在网易轻舟微服务平台中的应用实践与落地经验 下一篇云原生计算动态周报:2月22日-2月28日行业资讯汇总
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。