すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:永続的なワークフロー

最終更新日:Jan 07, 2025

ワークフロークラスター内のワークフロー関連リソースは定期的に削除されます。 ワークフローの履歴を分析および追跡するために、永続化ポリシーを構成して、ワークロードをデータベースに永続化できます。 これにより、ワークフローまたはワークフローのポッドが削除された後でも、ワークフローログを表示できます。 このトピックでは、ApsaraDB RDS for MySQLを例として使用し、永続的なワークフローをデータベースに設定する方法について説明します。

ApsaraDB RDS for MySQLの設定と使用

  1. ApsaraDB RDS for MySQLインスタンスを作成します。 詳細については、「ApsaraDB RDS for MySQL インスタンスの作成」をご参照ください。

    重要

    ApsaraDB RDS for MySQLインスタンスの仮想プライベートクラウド (VPC) がワークフロークラスターのものと同じであることを確認します。 ApsaraDB RDS for MySQLインスタンスのホワイトリストにVPC CIDRブロックを追加します。

  2. ApsaraDB RDS for MySQLインスタンスのデータベースとアカウントを作成します。 詳細については、「アカウントとデータベースの作成」をご参照ください。

  3. 次のコマンドを実行して、ワークフロークラスターargo-mysql-configという名前のシークレットを作成し、データベースのユーザー名とパスワードを保存します。

    kubectl create secret generic

    秘密の内容:

    説明

    前の手順で作成したデータベースのユーザー名とパスワードを指定します。

    apiVersion: v1
    stringData:
     username: database-username
     password: database-password
    kind: 秘密
    メタデータ:
     名前: argo-mysql-config
     namespace: デフォルト
    タイプ: 不透明 
  4. 永続性設定をworkflow-controller-configmap ConfigMapに追加します。

    説明
    • workflow-controller-configmap ConfigMapは、クラスターIDを名前として使用する名前空間に格納されます。

    • hostは、ApsaraDB RDS for MySQLインスタンスのアドレスを示します。

    • databaseは、データベースの名前を示します。

    • archivetrueに設定します。

    • archiveTTLは、ワークフローの保持期間を示します。 この例では、パラメーターは30dに設定されています。つまり、ワークフローはデータベースで30日間保持されます。 パラメータの有効な値は制限されません。

    persistence: |
     connectionPool:
     maxIdleConns: 100
     maxOpenConns: 0
     connMaxLifetime: 0s # 0は、接続に最大寿命がないことを意味します
     archiveTTL: 30d
     アーカイブ: true
     mysql:
     host: rm-xxx.mysql.cn-beijing.rds.aliyuncs.com
     port: 3306
     データベース: argo-workflow
     tableName: argo_workflow
     userNameSecret:
     名前: argo-mysql-config
     key: username
     passwordSecret:
     名前: argo-mysql-config
     キー: パスワード 

関連ドキュメント

ワークフローがデータベースに永続化された後、ワークフローが削除された後でも、Argo CLIを使用してワークフローログを表示できます。 詳細は、「Log Serviceの設定」をご参照ください。