ワークフローの状態などのワークフロー関連のリソースは定期的に削除されます。ワークフローの履歴を分析および追跡するために、永続化ポリシーを設定してワークロードをデータベースに永続化できます。このようにして、ワークフローまたはワークフローのポッドが削除された後でも、ワークフローログを表示できます。このトピックでは、ApsaraDB RDS for MySQL を例として、永続化ポリシーを設定してワークフローをデータベースに永続化する方法について説明します。
ステップ 1: ApsaraDB RDS for MySQL インスタンスを作成し、データベースを作成する
ApsaraDB RDS for MySQL インスタンスを作成し、インスタンス上にデータベースを作成し、データベースアカウントを設定する必要があります。ApsaraDB RDS for MySQL インスタンスとクラスターが同じ VPC に存在することを確認し、VPC の CIDR ブロックとの間のアクセスを許可するように IP ホワイトリストを設定します。詳細については、ステップ 1: ApsaraDB RDS for MySQL インスタンスを作成し、データベースを構成する を参照してください。
構成が完了したら、データベースアカウントのユーザー名とパスワードを記録します。
ApsaraDB RDS for MySQL の課金については、課金対象項目 を参照してください。
ステップ 2: 永続化設定を追加する
Argo Workflows ConfigMap に永続化設定を追加して、ワークフローをデータベースに永続化できます。デフォルトでは、永続化設定を有効にするために、Argo Workflow コントローラーと Argo Server を手動で再起動する必要があります。
データベースアカウントのユーザー名とパスワードを格納するために使用される、
argo-mysql-config
という名前の Secret を argo 名前空間に作成します。apiVersion: v1 stringData: username: database-username # 実際のユーザー名に置き換えます。 password: database-password # 実際のパスワードに置き換えます。 kind: Secret metadata: name: argo-mysql-config namespace: argo type: Opaque
argo 名前空間の
workflow-controller-configmap
を変更します。data
フィールドに永続化設定を追加します。data: persistence: | connectionPool: maxIdleConns: 100 maxOpenConns: 0 connMaxLifetime: 0s # 0 は接続に最大有効期間がないことを意味します。 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
パラメーター
説明
host
ApsaraDB RDS for MySQL インスタンスのエンドポイント。
database
データベースの名前。
archive
ワークフローの永続化を有効にするには、値を
true
に設定します。archiveTTL
保存期間。上限はありません。この例では、パラメーターは
30d
に設定されています。これは、ワークフローがデータベースに 30 日間永続化されることを意味します。永続化設定を有効にするために、Argo Workflows コントローラーと Argo Server を再起動します。