Alibaba Cloud CLI を使用して、ワークフロークラスターの vSwitch 割り当て、スケジューリングモード、ConfigMap 設定、および Elastic Container Instance (ECI) クォータを更新します。
前提条件
開始する前に、以下を確認してください。
Alibaba Cloud CLI 3.0.172 以降がインストールされ、認証情報が構成されていること。「Alibaba Cloud CLI のインストール」および「認証情報の構成」をご参照ください。
jqJSON プロセッサがインストールされていること。「jq のダウンロード」をご参照ください。
ワークフロークラスターのvSwitch指定
異なるゾーンに複数の vSwitch を割り当てることで、ワークフロークラスターはゾーンをまたいで Elastic Container Instance を作成できます。クラスターは負荷分散のためにワークロードをゾーン全体に分散します。あるゾーンでインスタンスが利用できない場合、クラスターは自動的に別のゾーンを試行します。
制限事項:
すべての vSwitch は同じ VPC に属している必要があります。
最大 10 個の vSwitch を指定できます。
ワークフロークラスターで現在使用されている vSwitch を照会します。
aliyun adcp DescribeHubClusterDetails --ClusterId <cluster-id> | jq .Cluster.WorkflowConfig.WorkflowUnitsvSwitch リストを更新します。既存の vSwitch と新しい vSwitch を含めます。
重要コマンドには常に元の vSwitch を含めてください。それらを省略すると、クラスターから vSwitch が削除されます。
aliyun adcp UpdateHubClusterFeature --VSwitches "[\"vsw-xxx\",\"vsw-xxx\",\"vsw-xxx\"]" --ClusterId <cluster-id>
スケジューリングモードの設定
ワークフロークラスターは 2 つのスケジューリングモードをサポートしています。コストと信頼性の要件に基づいて選択してください。
| モード | 説明 | インスタンスタイプ | 最適な用途 |
|---|---|---|---|
| 在庫優先 | デフォルトモード。従量課金 Elastic Container Instance を作成します。 | 従量課金 | 高可用性を必要とする予測可能なワークロード |
| コスト優先 | 低コストでプリエンプティブ型 Elastic Container Instance を作成します。 | プリエンプティブ | フォールトトレラントでコスト重視のバッチワークロード |
在庫優先モード
aliyun adcp UpdateHubClusterFeature --WorkflowScheduleMode "stock-optimized" --ClusterId <cluster-id>コスト優先モード
プリエンプティブ型 Elastic Container Instance は、ワークフローが完了する前に回収される可能性があり、ワークフローの失敗を引き起こす場合があります。インスタンス作成の成功率を向上させるには、複数のインスタンスタイプとゾーンを指定してください。
値幅制限付きでコスト優先モードを設定します。
aliyun adcp UpdateHubClusterFeature --WorkflowScheduleMode "cost-optimized" --PriceLimit "0.10" --ClusterId <cluster-id>値幅制限なしでコスト優先モードを設定します (クラスターは現在の市場価格で入札します)。
aliyun adcp UpdateHubClusterFeature --WorkflowScheduleMode "cost-optimized" --PriceLimit "" --ClusterId <cluster-id>プリエンプティブ型インスタンスが在庫切れで、値幅制限が設定されていない場合、クラスターは従量課金インスタンスにフォールバックします。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
WorkflowScheduleMode | はい | スケジューリングモード。有効な値: stock-optimized (在庫優先)、cost-optimized (コスト優先)。 |
PriceLimit | いいえ | vCore あたりの時間上限価格。単位: USD/時間。WorkflowScheduleMode が cost-optimized の場合にのみ適用されます。現在の市場価格で入札するには空白のままにします。例: "0.10"。 |
値幅制限の仕組み:
この制限は、vCore あたりおよび 4 GiB のメモリあたりに適用されます。例えば、0.10 USD/時間の制限の場合:
| Pod リソース | 計算 | 最大時間料金 |
|---|---|---|
| 2 vCore、4 GiB | 0.10 × 2 + 0.10 × (4 / 4) | 0.30 USD/時間 |
| 4 vCore、32 GiB | 0.10 × 4 + 0.10 × (32 / 4) | 1.20 USD/時間 |
workflow-controller-configmap の構成
workflow-controller-configmap ConfigMap を使用すると、Argo Workflow の動作をカスタマイズできます。これには以下が含まれます。
大規模なワークフローステータスを etcd から PostgreSQL または MySQL にオフロードする
完了したワークフローを PostgreSQL または MySQL にアーカイブする
Pod のガベージコレクション設定を調整する
ConfigMap は、クラスター ID にちなんで名付けられた名前空間に属します。
podMetadataセクションから以下のパラメーターを削除しないでください。これらを削除すると、ワークフロークラスターの ECI スケジューリングが中断されます。
podMetadata:
labels:
workflow.xflow.aliyun: xflow
annotations:
k8s.aliyun.com/eci-auto-imc: "true"
k8s.aliyun.com/eci-fail-strategy: "fail-fast"Elastic Container Instance のクォータ管理
デフォルトでは、各 Alibaba Cloud アカウントは Elastic Container Instance 用に最大 1,000 vCore を使用できます。
クォータの表示: Elastic Container Instance コンソールの [特典クォータ] ページに移動します。
クォータの引き上げをリクエスト: クォータセンター コンソールで申請を提出します。クォータ制限と詳細については、「Elastic Container Instance の制限事項」をご参照ください。