Argo Workflows は、Kubernetes ネイティブのワークフローエンジンです。YAML または Python を使用して並列ジョブをオーケストレーションし、コンテナ化されたアプリケーションの自動化と管理を簡略化できます。Argo Workflows は、データ処理、機械学習パイプライン、シミュレーションコンピューティング、CI/CD パイプラインなど、複数ステップ、並列ジョブ、依存関係の処理に適しています。このトピックでは、Argo CLI を使用してワークフローを作成する方法について説明します。
前提条件
バッチジョブオーケストレーションを有効にする を参照して、コンポーネントと Alibaba Cloud Argo CLI をインストールします。
手順
次の YAML テンプレートを使用して、helloworld-workflow.yaml という名前のファイルを作成します。このファイルは、サンプルワークフロータスクを送信するために使用されます。
apiVersion: argoproj.io/v1alpha1 kind: Workflow # Argo ワークフローの新しい 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" ]
次のコマンドを実行して、ワークフローを送信します。
argo submit helloworld-workflow.yaml -n argo
ワークフローのステータスを確認します。
次のコマンドを実行して、ワークフローのリストを取得します。
argo list -n argo
予想される出力:
NAME STATUS AGE DURATION PRIORITY hello-world-XXXXX Succeeded 2m 37s 0
この出力は、ワークフローが完了したことを示しています。
次のコマンドを実行して、ワークフローのステータスを確認します。
argo get hello-world-XXXXX -n argo
予想される出力:
Name: hello-world-XXXXX Namespace: argo ServiceAccount: unset (will run with the default 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 27s
この出力も、ワークフローが完了したことを確認しています。
参考文献
ワークフローで使用されるリソースは定期的に削除されます。ワークフローをデータベースに永続化するには、ワークフローの永続化 を参照してください。