什么是Argo Workflow
Argo Workflow是一个开源项目,为Kubernetes提供Container-native工作流程,主要通过Kubernetes CRD实现。它有四大特点:
容器云原生:工作流的每一步都是一个容器,可以通过环境变量注入配置;
建模:将多步骤工作流建模为一系列任务,或者使用有向无环图(DAG)描述任务之间的依赖关系;
易调度:可以在短时间内轻松运行用于机器学习或数据处理的计算密集型作业;
配置简单:在Kubernetes上运行CI/CD Pipeline,无需复杂的软件配置。
云原生工作流种类多样,为什么要选择Argo Workflow呢?
Airflow虽然是老牌任务管理、调度、监控,但存在语言强绑定以及过于依赖Python的缺点。
K8s原生Workflow的使用简单直接,但灵活度过差。
Apache Dolphin Scheduler的界面十分友好,任务定制简单,但API不友好,模板编排不灵活。
Argo Workflow与云原生结合紧密,专注于编排并行任务,容器编排灵活,并且模板编排支持模块化,能够有效提高调度效率。
Argo Workflow简单样例
Argo Workflow简单样例——dag
在编排过程中,首先定义一个echo模板,将模板的输入参数message直接打印到控制台。
其中,dag编排任务过程中最关键的部分是通过dependencies进行依赖。上图中的依赖关系为:B依赖A、C依赖A、D依赖B与C,故任务的执行顺序十分明朗:A先执行,随后B与C同时执行,最后执行D。
————————————————