このトピックでは、Argo CLI を使用してご利用の ACK クラスターで hello-world ワークフローを作成および実行する方法について説明します。
前提条件
開始する前に、以下を確認してください。
-
Argo Workflows コンポーネントがインストールされ、Alibaba Cloud Argo CLI が設定されていること。セットアップ手順については、「バッチタスクオーケストレーションの有効化」をご参照ください。
仕組み
Docker でコンテナを実行したことがある場合、Argo ワークフローも同じことを行いますが、Kubernetes クラスター上で実行されます。
docker run mirrors-ssl.aliyuncs.com/busybox:latest echo "hello world"
Argo ワークフローは、そのコンテナの実行を Kubernetes リソースとしてラップします。CLI コマンドの代わりに、コンテナ、そのコマンド、および引数を YAML ファイルで定義し、クラスターに投入します。
ワークフローの作成と実行
ステップ 1: ワークフローの定義
helloworld-workflow.yaml という名前のファイルを次の内容で作成します。
apiVersion: argoproj.io/v1alpha1
kind: Workflow # Argo Workflows の新しい Kubernetes リソースタイプを定義します。
metadata:
generateName: hello-world- # ワークフロー名のプレフィックス。Kubernetes は一意のサフィックスを追加します。
spec:
entrypoint: main # 最初に実行するテンプレートを指定します。
templates:
- name: main # テンプレートの名前。
container:
image: mirrors-ssl.aliyuncs.com/busybox:latest
command: [ echo ]
args: [ "hello world" ]
主要フィールド:
| フィールド | 説明 |
|---|---|
kind: Workflow |
これは Kubernetes の Argo ワークフローリソースとして宣言します。 |
generateName |
名前プレフィックスを設定します。Kubernetes はランダムなサフィックスを追加し、各投入に対して hello-world-k8pz2 のような一意の名前を生成します。 |
entrypoint |
最初に実行するテンプレートを指定します。複数ステップのワークフローでは、ここから実行が開始されます。 |
templates |
作業単位を定義します。各テンプレートは、コンテナ、スクリプト、または一連のステップにすることができます。 |
ステップ 2: ワークフローの投入
次のコマンドを実行して、argo 名前空間にワークフローを投入します。
argo submit helloworld-workflow.yaml -n argo
ステップ 3: ワークフローのステータスの確認
-
名前空間内のすべてのワークフローを一覧表示します。
argo list -n argo出力は次のようになります。
NAME STATUS AGE DURATION PRIORITY hello-world-XXXXX Succeeded 2m 37s 0Succeededステータスは、ワークフローが完了したことを確認します。 -
ワークフローの詳細を取得します。
argo get hello-world-XXXXX -n argo出力は次のようになります。
Name: hello-world-XXXXX Namespace: argo ServiceAccount: unset (デフォルトの ServiceAccount で実行されます) Status: Succeeded Conditions: PodRunning False Completed True .... Duration: 37 seconds Progress: 1/1 ResourcesDuration: 17s*(1 cpu),17s*(100Mi memory) STEP TEMPLATE PODNAME DURATION MESSAGE ✔ hello-world-XXXXX whalesay hello-world-XXXXX 27sStatus: SucceededおよびCompleted: Trueは、ワークフローが正常に完了したことを確認します。
Argo CLI クイックリファレンス
| 操作 | コマンド |
|---|---|
| ワークフローの投入 | argo submit <file>.yaml -n argo |
| すべてのワークフローを一覧表示 | argo list -n argo |
| 特定のワークフローの詳細を取得 | argo get <workflow-name> -n argo |
次のステップ
ワークフローリソースはクラスターから定期的に削除されます。データベースにワークフローレコードを永続化するには、「ワークフローの永続化」をご参照ください。