ワークフロークラスターは、サーバーレスアーキテクチャ上で Argo Workflows を実行し、コンピュートレイヤーとして Elastic Container Instance (ECI) を使用します。このクラスターはプリエンプティブルインスタンスを使用して大規模なワークフローを自動的にスケジュールし、コストを抑えることができます。
前提条件
作業を開始する前に、以下の条件を満たしていることを確認してください。
Distributed Cloud Container Platform for Kubernetes (ACK One) が有効化されていること。
Alibaba Cloud CLI 3.0.159 以降がインストールされ、認証情報が設定されている必要があります。「Alibaba Cloud CLI のインストール」および「認証情報の設定」をご参照ください。
RAM ユーザーに RAM ポリシー AliyunAdcpFullAccess がアタッチされていること。詳細については、「RAM ユーザーへの権限付与」をご参照ください。
CLI 手順で必要な
jqがインストールされていること:macOS:
brew install jqCentOS:
yum install jqUbuntu:
apt-get install jq
ワークフロークラスターの作成
コンソールを使用する
ACK One コンソールにログインします。
ワークフロークラスターページの右上隅にある[ワークフロークラスターの作成]をクリックします。表示されるパネルでパラメーターを設定し、[作成]をクリックします。
パラメーター 説明 [クラスター名] クラスターの名前を入力します。名前は1~63文字の長さで、英字、数字、アンダースコア ( _)、ハイフン (-) を含めることができ、英字で始まる必要があります。[リージョン] クラスターをデプロイするリージョンを選択します。 [VPC] ドロップダウンリストからVPCを選択します。 [vSwitch] ドロップダウンリストからvSwitchを選択します。 [APIサーバー用SLBインスタンス] 構成は不要です。タイプ slb.s2.small の Server Load Balancer (SLB) インスタンスが自動的に作成されます。このインスタンスを削除すると、APIサーバーにアクセスできなくなります。課金詳細については、「課金概要」をご参照ください。 [EIPの作成と関連付け] 弹性IPアドレス (EIP) をSLBインスタンスに関連付けるかどうかを制御します。有効にすると、システムはEIPを作成し、APIサーバーをインターネットに公開します。EIPは後で関連付けを解除できません。無効にすると、APIサーバーはインターネット経由でアクセスできません。課金詳細については、「課金概要」をご参照ください。 [オペレーションログと監査ログの収集を有効にする] Simple Log Serviceを有効にします。有効にすると、システムはk8s-log-{ClusterID}というサービスを作成し、監査目的で kube-apiserverおよびkube-controller-managerからログを収集します。課金詳細については、「課金概要」をご参照ください。
Alibaba Cloud CLI を使用する
環境変数を設定します。プレースホルダーの値を実際のリソース ID に置き換えてください。
export REGION_ID=cn-zhangjiakou export VPC_ID=<your-vpc-id> export VSWITCH_IDS='["<vsw-id-1>","<vsw-id-2>"]' export CLUSTER_NAME=workflow1CLI のリージョンを設定し、ワークフロークラスターを作成します。
パラメーター 必須 説明 Profileはい XFlowに設定します。RegionIdはい クラスターをデプロイするリージョンです。 VpcIdはい VPC の ID です。 VSwitchesはい vSwitch ID の JSON 配列です。高可用性のために、異なるゾーンの vSwitch を指定してください。 Nameいいえ クラスター名です。 IsEnterpriseSecurityGroupはい trueに設定すると、高度セキュリティグループが使用されます。ApiServerPublicEipいいえ trueに設定すると、EIP を使用して API サーバーエンドポイントがインターネットに公開されます。aliyun configure set --region $REGION_ID aliyun adcp CreateHubCluster \ --Profile XFlow \ --RegionId $REGION_ID \ --VpcId $VPC_ID \ --VSwitches "$VSWITCH_IDS" \ --Name $CLUSTER_NAME \ --ApiServerPublicEip true \ --IsEnterpriseSecurityGroup trueコマンドの実行結果は以下のようになります。
{ "ClusterId": "c1234abcd...", "RequestId": "A1B2C3D4...", "TaskId": "T9876..." }ClusterIdの値を保存してください。次のステップで必要になります。export CLUSTER_ID=<your-cluster-id>次のステップに進む前に、クラスターの状態が
runningになるまで待ちます。aliyun adcp DescribeHubClusterDetails --ClusterId $CLUSTER_ID | jq .Cluster.ClusterInfoクラスターのステータスが
runningと表示されるまで、コマンドを再実行してください。kubeconfig ファイルを生成し、環境を設定してこれを使用できるようにします。
aliyun adcp DescribeHubClusterKubeconfig --ClusterId $CLUSTER_ID \ | jq -r .Kubeconfig \ | tee ack-argo-workflow-kubeconfig export KUBECONFIG=ack-argo-workflow-kubeconfigKUBECONFIGをエクスポートした後、kubectlおよび Argo CLI はデフォルトでこのクラスターを使用します。
ワークフロークラスターの削除
ワークフロークラスターを削除する前に、クラスター内で実行中のすべてのワークフロー、Pod、および Elastic Container Instance を削除してください。
コンソールを使用する
ACK One コンソールにログインします。
左上隅のドロップダウンリストから削除するクラスターを選択します。
ワークフロークラスターページの右上隅にある[ワークフロークラスターの削除]をクリックし、[OK] をクリックして確認します。
Alibaba Cloud CLI を使用する
Argo Server を無効化し、関連する SLB インスタンスおよび Elastic Container Instance を削除します。
aliyun adcp UpdateHubClusterFeature --ArgoServerEnabled false --ClusterId $CLUSTER_IDワークフロークラスターを削除します。
aliyun adcp DeleteHubCluster --ClusterId $CLUSTER_ID
次のステップ
このクラスターの構成を変更するには、ワークフロークラスターの構成を変更するをご参照ください。
クラスターでワークフローの実行を開始するには、「ワークフローの作成」をご参照ください。