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

Container Service for Kubernetes:ワークフローの永続化

最終更新日:Feb 28, 2026

Argo Workflows は定期的にワークフローリソースをワークフロークラスターから削除します。分析やトレーシングのためにワークフロー履歴を保持するには、ワークフローデータをデータベースに永続化してください。永続化が設定されると、ワークフローやその Pod が削除された後でも、ワークフローログに引き続きアクセスできます。本トピックでは、ApsaraDB RDS for MySQL を例として、ワークフローデータをデータベースに永続化する方法を説明します。

前提条件

作業を開始する前に、以下の要件を満たしていることを確認してください。

  • ACK Distributed Cloud Container Platform for Kubernetes のワークフロークラスター

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

  • ApsaraDB RDS for MySQL インスタンス用のデータベースおよびアカウント。詳細については、「アカウントとデータベースの作成」をご参照ください。

  • ApsaraDB R D S for MySQL インスタンスがワークフロークラスターと同じ仮想プライベートクラウド (VPC) 内にあること

  • VPC の CIDR ブロックが ApsaraDB RDS for MySQL インスタンスのホワイトリストに追加済みであること

データベース認証情報用のシークレットの作成

ワークフロークラスター内に、データベースのユーザー名とパスワードを格納するための argo-mysql-config という名前のシークレットを作成します。

次のコマンドを実行します。

kubectl create secret generic argo-mysql-config \
  --namespace=default \
  --from-literal=username=<database-username> \
  --from-literal=password=<database-password>

<database-username> および <database-password> は、前提条件で作成したデータベースアカウントの認証情報に置き換えてください。

このコマンドにより、次の YAML マニフェストと同等のシークレットが作成されます。

apiVersion: v1
kind: Secret
metadata:
  name: argo-mysql-config   # 永続化構成から参照されるシークレット名
  namespace: default
type: Opaque
stringData:
  username: <database-username>   # データベースのユーザー名に置き換えてください
  password: <database-password>   # データベースのパスワードに置き換えてください

永続化設定の構成

workflow-controller-configmap ConfigMap に persistence ブロックを追加します。

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

  • host には、ApsaraDB RDS for MySQL インスタンスのエンドポイントを指定します。

  • database には、前提条件で作成したデータベースの名前を指定します。

  • archivetrue に設定すると、ワークフローのアーカイブが有効になります。

  • archiveTTL は、アーカイブされたワークフローの保持期間を指定します。たとえば、30d はワークフローを 30 日間保持します。有効な値は固定セットに限定されません。

次の表に、主なパラメーターを示します。

パラメーター説明
connectionPool.maxIdleConns接続プール内の最大アイドル接続数100
connectionPool.maxOpenConns最大オープン接続数。0 は無制限を意味します。0
connectionPool.connMaxLifetime接続の最大生存時間。0s は制限なしを意味します。0s
archiveTTLアーカイブされたワークフローの保持期間30d
archiveワークフローのアーカイブを有効にするかどうかtrue
mysql.hostApsaraDB RDS for MySQL のエンドポイントrm-xxx.mysql.cn-beijing.rds.aliyuncs.com
mysql.portMySQL ポート3306
mysql.databaseデータベース名argo-workflow
mysql.tableNameワークフローデータ用のテーブル名argo_workflows
mysql.userNameSecret.nameデータベースユーザー名を格納するシークレット名argo-mysql-config
mysql.userNameSecret.keyユーザー名のシークレットを入力username
mysql.passwordSecret.nameデータベースパスワードを格納するシークレット名argo-mysql-config
mysql.passwordSecret.keyパスワードにシークレットを入力してくださいpassword
persistence: |
    connectionPool:
      maxIdleConns: 100
      maxOpenConns: 0
      connMaxLifetime: 0s
    archiveTTL: 30d
    archive: true
    mysql:
      host: rm-xxx.mysql.cn-beijing.rds.aliyuncs.com
      port: 3306
      database: argo-workflow
      tableName: argo_workflows
      userNameSecret:
        name: argo-mysql-config
        key: username
      passwordSecret:
        name: argo-mysql-config
        key: password

次のステップ

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