文档

创建工作流

更新时间:

工作流是基于Argo开发,可以为Kubernetes提供容器化的本地工作流程。工作流程中的每个步骤都定义为容器。本文主要介绍如何通过控制台或命令行的方式创建工作流。

AGS工作流即将下线,推荐您使用ACK One分布式工作流Argo集群。ACK One分布式工作流Argo集群,是面向批处理、数据处理、科学计算、持续集成等业务场景,提供托管开源Argo的工作流集群,可以实现大规模工作流编排与高效弹性运行,并优化运行成本。

前提条件

说明

若您的集群未开通工作流功能,请提交工单申请。

背景信息

工作流基于Argo开发,可以为Kubernetes提供容器化的本地工作流程。工作流程中的每个步骤都定义为容器。

工作流是作为Kubernetes CRD(自定义资源定义)实现的。因此可以使用kubectl管理工作流,并与其他Kubernetes服务本地集成,例如Volumes、Secrets和RBAC。工作流控制器提供完整的工作流功能,包括参数替换、存储、循环和递归工作流程。

您可以通过控制台或命令行的方式创建工作流。

通过控制台创建Hello World工作流

  1. 登录容器服务管理控制台

  2. 在控制台左侧导航栏,单击集群

  3. 集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情

  4. 在集群管理页左侧导航栏中,选择应用 > 工作流

  5. 工作流(Workflow)页面,单击页面右上角的创建

  6. 使用模板创建对话框,对模板进行相关配置,完成配置后单击创建

    • 集群:选择目标集群。工作流将部署在该集群内。

    • 命名空间:选择工作流所属的命名空间,默认是default

    • 示例模板:阿里云容器服务提供了多种资源类型的Kubernetes YAML示例模板,让您快速部署工作流。您可以根据Kubernetes YAML编排的格式要求自主编写,来描述您想定义的工作流。

    下面是一个Hello World工作流的示例编排,基于容器服务自定义的编排模板。

    apiVersion: Argoproj.io/v1alpha1
    kind: Workflow                  #Kubernetes的类型。
    metadata:
      generateName: hello-world-    #工作流的名称。
    spec:
      entrypoint: whalesay          #调用whalesay镜像模板。
      templates:
      - name: whalesay              #模板名称
        container:
          image: docker/whalesay
          command: [cowsay]
          args: ["hello world"]
          resources:                #资源限制。
            limits: 
              memory: 32Mi
              cpu: 100m
  7. 创建完成后,返回工作流页面,您可以看到已经创建成功的工作流。

    创建成功

    您可以单击详情,了解该工作流基本信息容器组信息

通过命令行创建Parameters工作流

  1. 创建并拷贝内容到arguments-parameters.yaml文件中。

    apiVersion: Argoproj.io/v1alpha1
    kind: Workflow
    metadata:
      generateName: hello-world-parameters-
    spec:
      #用"hello world"作为参数值调用whalesay镜像模板。
      entrypoint: whalesay
      arguments:
        parameters:
        - name: message
          value: hello world
    
      templates:
      - name: whalesay
        inputs:
          parameters:
          - name: message       #参数描述。
        container:
          #用输入参数Args运行Cowsay。
          image: docker/whalesay 
          command: [cowsay]
          args: ["{{inputs.parameters.message}}"]
  2. 执行命令,创建Parameters工作流。

    ags submit arguments-parameters.yaml -p message="goodbye world"

您也可以参见Workflow示例模板,通过更新YAML文件的方式创建其他工作流。

Ags CLI是兼容阿里云定制的兼容社区版Argo的命令行工具,使用Ags CLI可以方便地提交、查看、修改、删除工作流。关于更多内容请参见AGS命令行帮助