本文介绍如何修改工作流集群的配置。
前提条件
已下载JSON数据处理工具。本文以JSON处理器jq为例,下载步骤,请参见jq Download。
指定集群虚拟交换机
创建ECI实例时,您可以通过指定多个交换机指定多个可用区,系统会随机把请求分散到所有指定的可用区,以分散压力。如果在某一个可用区遇到无库存时,将自动切换到下一个可用区继续尝试创建。
指定多可用区(交换机)时,需要注意以下使用限制:
指定的多个交换机必须处于同一VPC。
最多可以指定10个交换机。
执行以下命令,查看当前交换机。
aliyun adcp DescribeHubClusterDetails --ClusterId <cluster id> | jq .Cluster.WorkflowConfig.WorkflowUnits
执行以下命令,增加交换机。
以下代码参数需保留现有的交换机。
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控制台上查看权益配额。