Argo Workflows 介绍

发布时间: 更新时间: 总字数:840 阅读时间:2m 作者: IP上海 分享 网址

Argo Workflows 是一个容器原生的流水线引擎,用于在kubernetes上编排Job。

介绍

  • argo workflows 官方示例:https://workflows.apps.argoproj.io/
  • 在线课程:https://killercoda.com/pipekit/course/argo-workflows/
  • Workflows 示例:https://github.com/argoproj/argo-workflows/tree/master/examples
  • Argo 社区对自己的定位是 Data/Batch Processing、MLOps、AIOps,这也正是 Kubeflow Pipeline 底层基于 Argo 的原因

特性

  • UI页面
  • REST API
  • 原生制品库支持包括:S3、Artifactory、Aliyun OSS、HTTP、Git、GCS、raw
  • 模板支持灵活组合
  • 工作流记录(Wrokflows Archive)
  • 定时任务(Cron Wrokflows)
  • 在ML、ETL、Batch/Data Processing中均有使用
  • 开源、CNCF Incubating 项目

基础概念

  • 参考
  • Workflowtemplates and an entrypoint 组成
    • 主要有两个重要功能
      • 定义要执行的工作流
      • 存储工作流程的状态
    • entrypoint 是模板第一个被执行的节点
    • templates 由 6 种类型,它是列表结构,主要分为两类:
      • 定义具体的工作流,工作流有4种类别,如下:
        • Container 通常为执行/工作节点,与 Kubernetes container spec 定义相同
        • ScriptContainer 一样,通过 source: 指定脚本,结果被自动注入到 Argo variable,通过 {{tasks.<NAME>.outputs.result}} or {{steps.<NAME>.outputs.result}} 引用
        • Resource 直接对 k8s 集群资源进行操作
        • Suspend 暂停模板将暂停执行,要么持续一段时间,要么直到手动恢复执行,可以通过 argo resume 解除暂停
      • 调用其他模板提供并行控制(模板调用者(Template Invocators),用于调用其他模板并提供执行控制),调用其他模板也有两种类别:
        • Steps 一个步骤模板允许以一系列的步骤来定义你的任务,也可以通过 when 等控制
        • Dag 模板允许你将你的任务定义为一个依赖关系的图表,在DAG中,
          • 列出了所有的任务,并设定在某个任务开始之前,其他哪些任务必须完成
          • 没有任何依赖关系的任务将被立即运行
  • Workflow Template
  • ClusterWorkflowTemplate

其他

  "yaml.schemas": {
    "https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json": "**/workflow-templates/*.yaml"
  }
  • argo-hub 用 Codefresh Argo Hub 分享和复用你的 Argo 工作流程
Home Archives Categories Tags Statistics