1

やむを得ない場合は、Argo Workflows を YAML で実装され、Kubernetes をバックエンドとして使用するプログラミング言語と見なすことができます。

  • プロシージャは次を使用して定義できます。steps:
  • 関数は引数を持つテンプレートで、次の 2 つの種類があります。
    • 文字列であるパラメータ
    • S3 や NFS などのツールによって共有されるファイルであるアーティファクト
  • フロー制御あり
    • 条件は以下によって実装されますwhen:
    • イテレータは and によって実装されwithSequence:ますwithItems:
    • 自分自身を呼び出すテンプレートによって再帰が可能です

テンプレートは、Kubernetes YAML 仕様にある程度直接マッピングされます。パラメーターはアノテーションを介して共有されているように見え、アーティファクトはネイティブの Kubernetes 機能を介して共有されます。

フロー制御はどのように実装されていますか? これを実現するために、Argo は Kubernetes のどの機能を使用していますか? Kubernetes コントロール プレーンと何か関係がありますか?

4

1 に答える 1

1

Argo Workflows は、独自の yaml マニフェスト タイプなど、カスタムのKubernetes Custom Resourcesで実装されます。カスタム リソースごとに、ロジックを備えたKubernetes コントローラーとして機能する関連付けられたカスタム ポッドがあります。

カスタム コントローラーは、他のリソースまたは Pod を作成し、それらの実行ステータスの結果をステータス フィールドで監視し、それに応じてワークフロー ロジックを実装します。たとえば、結果を監視when:し、結果に応じて宣言された式に従います。

Tekton Pipelinesの使用経験は豊富ですが、Argo Workflows と同じように機能します。同様の実装に興味がある場合は、Kubebuilder から始めてThe Kubebuilder bookを読むことをお勧めします。

于 2021-01-02T22:22:18.410 に答える