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

背景信息

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

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

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

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

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的应用管理
  4. 在集群管理页左侧导航栏中,单击发布
  5. 发布页面,单击工作流,然后单击页面右上角的创建
  6. 对模板进行相关配置,完成配置后单击创建
    • 集群:选择目标集群。工作流将部署在该集群内。
    • 命名空间:选择工作流所属的命名空间,默认是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
  7. 创建完成后,返回工作流页面,您可以看到已经创建成功的工作流。
    创建成功

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

通过命令行创建Parameters工作流

  1. 创建并拷贝内容到arguments-parameters.yaml文件中。
    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}}"]
  2. 执行命令,创建Parameters工作流。
    ags submit arguments-parameters.yaml -p message="goodbye world"

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

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