本文介紹如何修改工作流程叢集的配置。
前提條件
已下載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控制台上查看權益配額。