Todos os produtos
Search
Central de documentação

Container Compute Service:Persistir workflows

Última atualização: Jun 29, 2026

O Argo Workflows exclui periodicamente estados de workflows e recursos associados. Configure uma política de persistência para arquivar workflows em um banco de dados MySQL e visualize os logs mesmo após a exclusão dos workflows ou de seus pods.

Este tópico usa o ApsaraDB RDS for MySQL como backend de banco de dados.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster do Alibaba Cloud Container Service com o Argo Workflows instalado

  • Acesso ao namespace argo no cluster

  • Permissões para criar Secrets e modificar ConfigMaps no cluster

Etapa 1: Configurar o ApsaraDB RDS for MySQL

Crie uma instância do ApsaraDB RDS for MySQL, crie um banco de dados nessa instância e configure uma conta de banco de dados. A instância RDS deve estar na mesma Virtual Private Cloud (VPC) do cluster. Configure uma lista de permissões de IP na instância para permitir acesso de entrada do bloco CIDR da VPC.

Para obter instruções detalhadas, consulte Criar uma instância do ApsaraDB RDS for MySQL e configurar um banco de dados.

Após concluir a configuração, anote o nome de usuário e a senha da conta do banco de dados.

Para informações sobre preços do ApsaraDB RDS for MySQL, consulte Itens faturáveis .

Etapa 2: Adicionar configurações de persistência

Adicione as configurações de persistência ao ConfigMap do Argo Workflows. Por padrão, reinicie manualmente o controller do Argo Workflows e o Argo Server para aplicar as alterações.

1. Criar um Secret para credenciais do banco de dados

Crie um Secret chamado argo-mysql-config no namespace argo para armazenar o nome de usuário e a senha do banco de dados.

Opção A: Usar kubectl (recomendado)

kubectl create secret generic argo-mysql-config -n argo \
  --from-literal=username=<database-username> \
  --from-literal=password=<database-password>

Opção B: Usar um manifesto YAML

apiVersion: v1
kind: Secret
metadata:
  name: argo-mysql-config
  namespace: argo
type: Opaque
stringData:
  username: <database-username>  # Replace with the actual username.
  password: <database-password>  # Replace with the actual password.

Aplique o manifesto:

kubectl apply -f secret.yaml

2. Atualizar o ConfigMap

Edite o workflow-controller-configmap no namespace argo para adicionar o bloco persistence em 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

Principais parâmetros:

Parâmetro

Descrição

archive

Defina como true para ativar a persistência de workflows.

archiveTTL

Período de retenção dos workflows arquivados. Neste exemplo, o valor é 30d, mantendo os workflows por 30 dias. Não há limite máximo para o período de retenção.

mysql.host

Endpoint da instância do ApsaraDB RDS for MySQL.

mysql.port

Porta do banco de dados. O padrão é 3306.

mysql.database

Nome do banco de dados para gravação dos dados dos workflows.

mysql.tableName

Nome da tabela principal de workflows.

connectionPool.maxIdleConns

Número máximo de conexões ociosas no pool.

connectionPool.maxOpenConns

Quantidade máxima de conexões abertas. O valor 0 indica ilimitado.

connectionPool.connMaxLifetime

Tempo de vida máximo das conexões. O valor 0s indica ausência de limite de tempo de vida.

userNameSecret

Referência à chave do Secret que contém o nome de usuário do banco de dados.

passwordSecret

Referência à chave do Secret que contém a senha do banco de dados.

3. Reiniciar o controller do Argo Workflows e o Argo Server

Reinicie o controller do Argo Workflows e o Argo Server para aplicar as configurações de persistência.

Próximos passos

  • Para desativar a persistência, defina archive: false no bloco persistence e reinicie o controller do Argo Workflows e o Argo Server.

  • Para visualizar workflows arquivados, abra a interface do Argo Server e acesse a seção Archived Workflows.