ワークフロークラスター内のワークフロー関連リソースは定期的に削除されます。 ワークフローの履歴を分析および追跡するために、永続化ポリシーを構成して、ワークロードをデータベースに永続化できます。 これにより、ワークフローまたはワークフローのポッドが削除された後でも、ワークフローログを表示できます。 このトピックでは、ApsaraDB RDS for MySQLを例として使用し、永続的なワークフローをデータベースに設定する方法について説明します。
ApsaraDB RDS for MySQLの設定と使用
ApsaraDB RDS for MySQLインスタンスを作成します。 詳細については、「ApsaraDB RDS for MySQL インスタンスの作成」をご参照ください。
重要ApsaraDB RDS for MySQLインスタンスの仮想プライベートクラウド (VPC) がワークフロークラスターのものと同じであることを確認します。 ApsaraDB RDS for MySQLインスタンスのホワイトリストにVPC CIDRブロックを追加します。
ApsaraDB RDS for MySQLインスタンスのデータベースとアカウントを作成します。 詳細については、「アカウントとデータベースの作成」をご参照ください。
次のコマンドを実行して、ワークフロークラスターに
argo-mysql-config
という名前のシークレットを作成し、データベースのユーザー名とパスワードを保存します。kubectl create secret generic
秘密の内容:
説明前の手順で作成したデータベースのユーザー名とパスワードを指定します。
apiVersion: v1 stringData: username: database-username password: database-password kind: 秘密 メタデータ: 名前: argo-mysql-config namespace: デフォルト タイプ: 不透明
永続性設定を
workflow-controller-configmap
ConfigMapに追加します。説明workflow-controller-configmap
ConfigMapは、クラスターIDを名前として使用する名前空間に格納されます。host
は、ApsaraDB RDS for MySQLインスタンスのアドレスを示します。database
は、データベースの名前を示します。archive
をtrue
に設定します。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の設定」をご参照ください。