工作流的相关资源在工作流集群中会被定期清理,如果您想对工作流的运行过程进行分析和回溯,可以通过配置持久化策略将工作流持久化存储到数据库中。这样即使工作流被删除或者工作流运行的Pod被删除,您也可以查看到工作流的日志。本文以阿里云RDS MySQL数据库为例,为您介绍如何配置工作流持久化到数据库的策略。
配置使用RDS
创建阿里云RDS MySQL实例。具体操作,请参见创建RDS MySQL实例。
重要设置网络时,选择的VPC和工作流集群所使用的VPC要保持一致,设置白名单时需放开该VPC网段。
创建数据库和账号。具体操作,请参见创建数据库和账号。
执行以下命令在工作流集群中创建一个名为
argo-mysql-config
的Secret,用于保存数据库的账号和密码。kubectl create secret generic
Screct内容如下:
说明username和password需要分别替换为您在上一步骤实际创建的数据库账号和密码。
apiVersion: v1 stringData: username: database-username password: database-password kind: Secret metadata: name: argo-mysql-config namespace: default type: Opaque
编辑
workflow-controller-configmap
,增加持久化配置。说明workflow-controller-configmap
文件位于以集群ID命名的命名空间中。host
为RDS实例地址RDS MySQL实例的地址。database
为数据库的名称。archive
需要设置为true
。archiveTTL
为持久化的保存时间,本示例设置为30d,表示工作流持久化到数据库中可以保存30天。该参数取值大小无限制。
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
相关文档
如果工作流已持久化到数据库中,即使工作流被删除,您也可以通过Argo CLI查看工作流的日志。具体信息,请参见使用日志服务。