このトピックでは、ワークフロークラスターの構成を変更する方法について説明します。
前提条件
JSONプロセッサがダウンロードされます。 この例では、JSONプロセッサjqが使用されます。 jqのダウンロード方法の詳細については、「jqダウンロード」をご参照ください。
ワークフロークラスターのvSwitchの指定
ワークフロークラスターの異なるゾーンに複数のvSwitchを指定できます。 このようにして、複数のゾーンにわたって弾性コンテナインスタンスを作成できます。 これにより、システムは、要求を複数のゾーンに分散することによって、ワークフロークラスタの負荷を均衡させることができる。 ゾーンで使用可能なエラスティックコンテナインスタンスがない場合、システムは別のゾーンでエラスティックコンテナインスタンスを作成しようとします。
異なるゾーンで複数のvSwitchを指定する場合、次の制限事項に注意してください。
vSwitchは、同じ仮想プライベートクラウド (VPC) に作成する必要があります。
最大10個のvSwitchを指定できます。
次のコマンドを実行して、ワークフロークラスターで現在使用されているvSwitchを照会します。
aliyun adcp DescribeHubClusterDetails --ClusterId <cluster id> | jq .Cluster.WorkflowConfig.WorkflowUnits次のコマンドを実行して、ワークフロークラスターのvSwitchを指定します。
次のコマンドで、ワークフロークラスターで使用する元のvSwitchを指定する必要があります。
aliyun adcp UpdateHubClusterFeature --VSwitches "[\"vsw-xxx\",\"vsw-xxx\",\"vsw-xxx\"]" --ClusterId <cluster id>
ワークフロークラスターのスケジューリングモードの設定
ワークフロークラスターは、次のスケジューリングモードをサポートします。
インベントリ優先スケジューリングモード:
ワークフロークラスターのデフォルトのスケジューリングモード。 このモードでは、ワークフロークラスターは、ワークフローを実行するための従量課金のエラスティックコンテナインスタンスを作成します。 このモードを使用する場合、上限価格を指定する必要はありません。
コスト優先スケジューリングモード:
このモードでは、ワークフロークラスターは、費用対効果の高い方法でワークフローを実行するためのプリエンプティブル弾性コンテナインスタンスを作成します。 プリエンプティブル弾性コンテナインスタンスに複数のインスタンスタイプとゾーンを指定して、弾性コンテナインスタンス作成の成功率を向上させることができます。
このモードでは、プリエンプティブルエラスティックコンテナインスタンスは、予想よりも早く在庫切れまたは再利用される可能性があります。 この場合、ワークフローの実行に失敗する可能性があります。
上限価格は、各vCoreまたは各4 GiBのメモリの最高時間料金を指定します。 単位:
USD /時間 上限価格を指定しない場合、システムは最新の市場価格に基づいて自動的に入札を送信します。 上限価格をに設定した場合 USD 0.1 /時間では、次のルールに基づいてエラスティックコンテナインスタンスが作成されます。2 vCoresと4 GiBのメモリが必要な場合、システムは2 vCores、4 GiBのメモリ、および1時間あたりの価格が
USD 0.3 /時間 (USD 0.1 /時間 × 2 + USD 0.1 /時間 × 4 GiB/4 GiB) 。4 vCoresと32 GiBのメモリが必要な場合、システムは4 vCores、32 GiBのメモリ、および1時間あたりの価格が
USD 1.2 /時間 (USD 0.1 /時間 × 4 + USD 0.1 /時間 × 32 GiB/4 GiB) 。
プリエンプティブル弾性コンテナインスタンスが在庫切れで、上限価格が指定されていない場合、システムはワークフローを実行するために従量課金弾性コンテナインスタンスを作成します。
次のコマンドを実行して、ワークフロークラスターのスケジューリングモードを設定します。
次のコマンドを実行して、ワークフロークラスターのスケジューリングモードをインベントリ優先に設定します。
aliyun adcp UpdateHubClusterFeature --WorkflowScheduleMode "stock-optimized" --ClusterId <cluster id>次のコマンドを実行して、ワークフロークラスターのスケジューリングモードをコスト優先に設定し、上限価格を指定します。
aliyun adcp UpdateHubClusterFeature --WorkflowScheduleMode "cost-optimized" --PriceLimit "0.10" --ClusterId <cluster id>次のコマンドを実行して、上限価格を指定せずにワークフロークラスターのスケジューリングモードをコスト優先に設定します。
aliyun adcp UpdateHubClusterFeature --WorkflowScheduleMode "cost-optimized" --PriceLimit "" --ClusterId <cluster id>コマンドのパラメーターを次の表に示します。
パラメーター
説明
WorkflowScheduleMode
ワークフロークラスターのスケジューリングモード。 This parameter is required. 有効な値:
stock-optimized: 在庫優先cost-optimized: コスト優先
PriceLimit
各vCoreの1時間あたりの上限価格。 単位:
USD /時間 このパラメーターはオプションです。 このパラメーターは、WorkflowScheduleModeをcost-optimizedに設定した場合にのみ有効になります。 例:"0.10"
ワークフローコントローラー-configmap ConfigMapの設定
オープンソースのArgoワークフローを使用する場合、Workflow-controller-configmapを設定してArgoワークフローをカスタマイズできます。 たとえば、大規模なワークフローのステータスをetcdからPostgreSQLまたはMySQLにオフロードしたり、ワークフローをPostgreSQLまたはMySQLにアーカイブしたり、ポッドのガベージコレクション設定を変更したりできます。
workflow-controller-configmap 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"elasticコンテナインスタンスのクォータの設定
デフォルトでは、Alibaba Cloudアカウントに属するエラスティックコンテナインスタンスで最大1,000個のvCoresを使用できます。 クォータの詳細は、Elastic Container Instanceコンソールの [特権とクォータ] ページで確認できます。
クォータを増やすには、クォータセンターコンソールでアプリケーションを送信します。 詳細については、「エラスティックコンテナインスタンスの制限」をご参照ください。