全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:持久化工作流

更新时间:Mar 15, 2024

工作流的相关资源在工作流集群中会被定期清理,如果您想对工作流的运行过程进行分析和回溯,可以通过配置持久化策略将工作流持久化存储到数据库中。这样即使工作流被删除或者工作流运行的Pod被删除,您也可以查看到工作流的日志。本文以阿里云RDS MySQL数据库为例,为您介绍如何配置工作流持久化到数据库的策略。

配置使用RDS

  1. 创建阿里云RDS MySQL实例。具体操作,请参见创建RDS MySQL实例

    重要

    设置网络时,选择的VPC和工作流集群所使用的VPC要保持一致,设置白名单时需放开该VPC网段。

  2. 创建数据库和账号。具体操作,请参见创建数据库和账号

  3. 执行以下命令在工作流集群中创建一个名为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
  4. 编辑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查看工作流的日志。具体信息,请参见使用日志服务