実行ステータスなどのワークフロー関連のリソースは、定期的に削除されます。 ワークフローの履歴を分析および追跡するために、データベース内のワークロード永続化のための永続化ポリシーを構成できます。 これにより、ワークフローまたはその実行中のポッドが削除されても、ワークフローログにアクセスできるようになります。 このトピックでは、ApsaraDB RDS for MySQLデータベースを例として、永続化ポリシーを設定する方法を示します。
手順1: ApsaraDB RDS for MySQLインスタンスの設定とデータベースの作成
ApsaraDB RDS for MySQLインスタンスを作成します。
前の手順で作成したインスタンスに新しいデータベースを設定し、アカウントを設定します。
インスタンスの仮想プライベートクラウド (VPC) を設定します。 VPCがクラスターで使用されているVPCと一致することを確認します。
重要IPホワイトリストを設定するときは、このVPCのCIDRブロックを含めます。
詳細な手順については、「手順1: RDS MySQLインスタンスの迅速な作成とデータベースの設定」をご参照ください。
設定後、後で使用するためにデータベースのユーザー名とパスワードを記録します。
RDSの課金方法については、「課金可能項目」をご参照ください。
ステップ2: 永続性設定の追加
Argo Workflows ConfigMapに永続化関連のパラメーターを追加して、データベース内のワークフローデータを永続化することができます。 データベースに保存されたデータは永続的です。 デフォルトでは、ArgoコアコンポーネントはConfigMapデータベース構成の変更を自動的に検出することはできません。 設定後、Argo WorkflowコントローラーとArgo Serverを手動で再起動して変更を適用する必要があります。
クラスターの
argo
名前空間に、argo-mysql-config
という名前のシークレットを作成して、データベースのユーザー名とパスワードを保存します。apiVersion: v1 stringData: username: database-username # Replace with your RDS database account. password: database-password # Replace with your RDS 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 means connections don't have a max lifetime. 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
次の表に、設定ファイルで使用される主要なパラメーターを示します。
パラメーター
説明
ホスト
ApsaraDB RDS for MySQLインスタンスのエンドポイント。
データベース
前の手順でApsaraDB RDS for MySQLインスタンスに作成したデータベースの名前。
アーカイブ
ワークフローの永続性を有効にするかどうかを指定します。このパラメーターを
true
に設定します。archiveTTL
ワークフローの保持期間を指定します。 最大値はありません。 この例では、パラメーターは
30d
に設定されています。つまり、ワークフローは30日間データベースに保持されます。Argo WorkflowコントローラーとArgo Serverの両方を再起動して変更を適用します。