本文主要为您介绍如何创建工作流。

背景信息

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

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

前提条件

操作步骤

您可以通过控制台和命令行的方式创建工作流。
  • 通过控制台创建Hello World工作流
    1. 登录 容器服务管理控制台
    2. 在 Kubernetes 菜单下,选择应用 > 工作流,单击右上角的创建
    3. 对模板进行相关配置,完成配置后单击创建

      • 集群:选择目标集群。工作流将部署在该集群内。
      • 命名空间:选择工作流所属的命名空间,默认是 default。
      • 示例模板:阿里云容器服务提供了多种资源类型的 Kubernetes yaml 示例模板,让您快速部署工作流。您可以根据 Kubernetes Yaml 编排的格式要求自主编写,来描述您想定义的工作流。
      下面是一个 Hello World 工作流的示例编排,基于容器服务自定义的编排模板。
      apiVersion: argoproj.io/v1alpha1
      kind: Workflow                  # new type of k8s spec
      metadata:
        generateName: hello-world-    # name of the workflow spec
      spec:
        entrypoint: whalesay          # invoke the whalesay template
        templates:
        - name: whalesay              # name of the template
          container:
            image: docker/whalesay
            command: [cowsay]
            args: ["hello world"]
            resources:                # limit the resources
              limits:
                memory: 32Mi
                cpu: 100m
    4. 几秒钟后,返回工作流(Workflow)页面,您可以看到已经创建成功的工作流。

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

  • 通过命令行创建Parameters工作流
    1. 创建并拷贝内容到arguments-parameters.yaml文件中,并执行ags submit arguments-parameters.yaml -p message="goodbye world"命令,创建 Parameters 工作流。
      apiVersion: argoproj.io/v1alpha1
      kind: Workflow
      metadata:
        generateName: hello-world-parameters-
      spec:
        # invoke the whalesay template with
        # "hello world" as the argument
        # to the message parameter
        entrypoint: whalesay
        arguments:
          parameters:
          - name: message
            value: hello world
      
        templates:
        - name: whalesay
          inputs:
            parameters:
            - name: message       # parameter declaration
          container:
            # run cowsay with that message input parameter as args
            image: docker/whalesay
            command: [cowsay]
            args: ["{{inputs.parameters.message}}"]

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

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