如何修改工作流集群配置

本文介绍如何修改工作流集群的配置。

前提条件

指定集群虚拟交换机

创建ECI实例时,您可以通过指定多个交换机指定多个可用区,系统会随机把请求分散到所有指定的可用区,以分散压力。如果在某一个可用区遇到无库存时,将自动切换到下一个可用区继续尝试创建。

重要

指定多可用区(交换机)时,需要注意以下使用限制:

  • 指定的多个交换机必须处于同一VPC。

  • 最多可以指定10个交换机。

  1. 执行以下命令,查看当前交换机。

     aliyun adcp  DescribeHubClusterDetails --ClusterId <cluster id> | jq .Cluster.WorkflowConfig.WorkflowUnits
  2. 执行以下命令,增加交换机。

    以下代码参数需保留现有的交换机。

    aliyun adcp UpdateHubClusterFeature --VSwitches "[\"vsw-xxx\",\"vsw-xxx\",\"vsw-xxx\"]" --ClusterId <cluster id>

设置集群调度模式

工作流集群支持以下两种调度模式。

  • 库存优先调度

    创建集群的默认调度模式,创建按量ECI实例运行工作流保证供给。在此模式下,无需设置价格上限PriceLimit。

  • 成本优先调度

    • 默认使用抢占式Spot ECI运行工作流,确保低成本运行工作流,同时可选择多机型和多可用区提高供给率。

    • 使用抢占式Spot ECI运行工作流,可能出现抢占式Spot库存不足,或者抢占式Spot实例被提前回收,导致工作流运行失败。

    • PriceLimit为单CPU核或者4 GiB内存的价格上限,单位为元/小时。如果未设置Pricelimit,则没有价格限制,使用抢占式Spot系统自动出价。如果设置PriceLimit为0.1元/小时,则对应调度方式如下:

      • 如果ECI的CPU和Memory为2 Core 4 GiB,则系统将会调度2 Core 4 GiB且单价低于0.30元/小时(0.10 x 2 + 0.10)的机型。

      • 如果ECI的CPU和Memory为4 Core 32 GiB,则系统将会调度4 Core 32 GiB且单价低于1.20元/小时(0.10 x 4 + 0.10 x(32 GiB/4 GiB))的机型。

    • 当Spot库存不足时,如果未设置PriceLimit,系统会创建按量ECI实例继续运行工作流。

您可以通过以下命令,根据需求设置不同的集群调度模式。

  • 执行以下命令,设置集群调度模式为库存优先调度。

    aliyun adcp UpdateHubClusterFeature --WorkflowScheduleMode "stock-optimized" --ClusterId <cluster id>
  • 执行以下命令,设置集群调度模式为成本优先调度并设置价格上限PriceLimit。

    aliyun adcp UpdateHubClusterFeature --WorkflowScheduleMode "cost-optimized" --PriceLimit "0.10" --ClusterId <cluster id>
  • 执行以下命令,设置集群调度模式为成本优先调度,不设置价格上限PriceLimit。

    aliyun adcp UpdateHubClusterFeature --WorkflowScheduleMode "cost-optimized" --PriceLimit "" --ClusterId <cluster id>

    相关参数说明如下表所示。

    参数

    说明

    WorkflowScheduleMode

    必选,集群调度模式。取值:

    • stock-optimized:库存优先调度。

    • cost-optimized:成本优先调度。

    PriceLimit

    可选,调度单核价格的上限,单位为元/小时。仅当选择成本调度cost-optimized时有效,例如"0.10"

配置workflow-controller-configmap

使用开源Argo Workflow时,您可以通过配置workflow-controller-configmap定制Argo Workflow。例如,使用PostgreSQL或MySQL从etcd卸载大工作流Status,将工作流归档到PostgreSQL或MySQL,修改Pod GC的配置。

重要
  • workflow-controller-configmap文件位于以集群ID命名的命名空间中。

  • 请勿删除以下podMetadata

      podMetadata:
        labels:
          workflow.xflow.aliyun: xflow
        annotations:
          k8s.aliyun.com/eci-auto-imc: "true"
          k8s.aliyun.com/eci-fail-strategy: "fail-fast"

配置ECI限额

账号默认ECI使用的资源限额为1000 vCPU。您可以在ECI控制台上查看权益配额

如果您的工作流需要更多计算资源,请前往配额中心提升配额。更多信息,请参见ECI实例限制