赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 分布式云容器平台ACK One
  4. 操作指南
  5. 分布式工作流Argo集群
  6. 管理工作流
  7. 创建工作流

创建工作流

  • 管理工作流
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

工作流集群基于开源Argo Workflow项目构建,适用于CI/CD流水线、数据处理、机器学习和仿真计算等。本文通过示例介绍如何使用Argo CLI创建工作流,并设置CPU和Memory资源。

前提条件

  • 已创建分布式工作流Argo集群

  • 已完成RAM用户授权

使用说明

工作流ServiceAccount

工作流可指定ServiceAccount用于运行中访问其他Kubernetes资源,您可以创建自己的ServiceAccount,工作流集群会为ServiceAccount自动绑定权限,若权限不足,请加入钉钉群(钉钉群号:35688562),联系产品技术专家进行咨询。

阿里云Argo CLI

阿里云Argo CLI完全兼容开源Argo CLI,并增强了Metrics能力和日志能力。您可以使用阿里云Argo CLI查看工作流的CPU、内存资源消耗及运行成本,并获取已删除Pod的日志。

安装步骤如下:

说明

以下安装步骤以Linux系统为例,Darwin和Linux系统的下载链接分别如下:

  • Darwin:argo-cli-aliyun-darwin

  • Linux:argo-cli-aliyun-linux

  1. 执行如下命令,下载阿里云Argo CLI。

    wget https://ack-one.oss-cn-hangzhou.aliyuncs.com/cli/v3.4.12/argo-cli-aliyun-linux
  2. 执行如下命令为argo-cli-aliyun-linux授予可执行权限。

    chmod +x argo-cli-aliyun-linux
  3. 将执行文件移动到环境变量包含的目录下,例如:/usr/local/bin/。

    mv argo-cli-aliyun-linux /usr/local/bin/argo

创建工作流

您可以通过以下阿里云Argo CLI和kubectl两种方式操作创建工作流。

使用阿里云Argo CLI操作工作流

  1. 使用以下内容,创建helloworld-workflow.yaml文件。

    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" ]
  2. 执行以下命令,提交工作流。

    argo submit helloworld-workflow.yaml
  3. 查看工作流状态。

    1. 执行以下命令,获取工作流列表。

      argo list

      预期输出:

      NAME                STATUS      AGE   DURATION   PRIORITY
      hello-world-lgdpp   Succeeded   2m    37s        0
    2. 执行以下命令,查看工作流状态。

      argo get hello-world-lgdpp

      预期输出:

      Name:                hello-world-lgdpp
      Namespace:           default
      ServiceAccount:      unset (will run with the default ServiceAccount)
      Status:              Succeeded
      Conditions:
       PodRunning          False
       Completed           True
      ....
      Duration:            37 seconds
      Progress:            1/1
      ResourcesDuration:   17s*(1 cpu),17s*(100Mi memory)
      
      STEP                  TEMPLATE  PODNAME            DURATION  MESSAGE
       ✔ hello-world-lgdpp  whalesay  hello-world-lgdpp  27s

使用kubectl操作工作流

KubeConfig设置完成后,您可以通过kubectl操作工作流集群,但不同于普通的Kubernetes集群,部分操作会受限。相关权限说明如下。

资源

权限说明

priorityclasses

可以管理priorityclasses,并在工作流中制定priorityclasses,达到通过Pod优先级控制调度顺序的目的。

namespaces

可以创建Namespaces,拥有自建Namespaces的全部权限,并可访问自建Namespaces下的资源。不能访问系统Namespaces下的资源。系统Namespaces即以kube-开头的Namespaces。

重要

以集群ID命名的命名空间为Argo的系统命名空间,您可以操作此系统命名空间,例如,修改workflow-controller-configmap配置Argo Workflow的运行参数。

persistentvolumes

全部权限。

persistentvolumeclaims

自建Namespaces下的全部权限。

secretsconfigmapsserviceaccounts

自建Namespaces下的全部权限。

pods

自建Namespaces下的读权限。

pods/logevents

自建Namespaces下的读权限。

pods/exec

自建Namespaces下的创建权限。

Argo:

workflows

workflowtasksets

workflowtemplates

cronworkflows

自建Namespaces下的全部权限。

设置容器CPU和内存

工作流集群优先使用抢占式ECI实例,并配合按量付费ECI应优化成本。抢占式ECI实例的保护期为1小时,请确保工作流的子步骤在此时间内完成。

抢占式ECI实例仅支持2 vCPU及以上规格,不支持小于2 vCPU的配置。

  • 如果容器未配置资源请求或配置小于2 vCPU/4 GiB,系统默认使用2 vCPU/4 GiB。

  • 如果容器配置的资源请求大于2 vCPU/4 GiB,系统会自动匹配满足规格的ECI。

支持指定的vCPU和内存规格如下表所示。不建议使用大于8 vCPU的配置。

vCPU

内存(GiB)

2

4、8、16

4

4、8、16、32

8

4、8、16、32、64

强制使用按量计费ECI运行工作流

在成本优先模式下,如需运行关键任务,不希望使用抢占式ECI实例。您可以设置工作流使用按量计费ECI实例运行工作流。

配置Container的requests和limits字段,示例代码如下。

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:
          requests:
            cpu: 0.5
            memory: 1Gi
          limits:
            cpu: 0.5
            memory: 1Gi

相关文章

创建工作流 2025-04-18 18:09

工作流集群基于开源Argo Workflow项目构建,适用于CI/CD流水线、数据处理、机器学习和仿真计算等。本文通过示例介绍如何使用Argo CLI创建工作流,并设置CPU和Memory资源。

使用指定ECS规格运行工作流 2025-04-18 18:09

在某些场景下,业务存在着特殊的规格需求,例如GPU、增强的网络能力、高主频、本地盘、AMD机型等。工作流集群支持通过指定的ECS规格运行工作流。本文介绍如何使用指定ECS规格运行工作流。 索引

使用存储卷 2025-04-18 18:09

本文介绍如何在工作流集群中挂载使用存储卷。 使用说明 在工作流集群中支持使用OSS存储卷、NAS存储卷

持久化工作流 2025-04-18 18:09

工作流的相关资源在工作流集群中会被定期清理,如果您想对工作流的运行过程进行分析和回溯,可以通过配置持久化策略将工作流持久化存储到数据库中。这样即使工作流被删除或者工作流运行的Pod被删除,您也可以查看到工作流的日志。本文以阿里云RDS MySQL数据库为例,为您介绍如何配置工作流持久化到数据库的策略

配置Artifacts 2025-04-18 18:09

通过配置使用工作流集群Artifacts,可以在工作流各个步骤之间传递参数,一个步骤的输出可以作为另一个步骤的输入,从而完成复杂工作流步骤的编排。本文介绍如何使用阿里云OSS作为Artifacts的存储,在工作流步骤间传递参数。

镜像 2025-04-18 18:09

在拉取阿里云镜像服务ACR中的镜像时,您可以通过配置免密简化配置,加速镜像拉取。本文介绍如何在工作流集群中使用镜像缓存加速创建工作流Pod。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号