Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Persistência de workflow

Última atualização: Jun 27, 2026

O Argo Workflows exclui periodicamente recursos relacionados a workflows, incluindo registros de status de execução. Para manter o histórico e permitir análise e rastreamento após a exclusão dos workflows ou de seus pods, persista os dados em um banco de dados externo.

Este tópico descreve como configure uma instância do ApsaraDB RDS for MySQL como backend de persistência para o Argo Workflows em execução em um cluster ACK.

Pré-requisitos

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

  • Um cluster ACK com o Argo Workflows instalado no namespace argo

  • Permissões para crie Secrets e modifique ConfigMaps no namespace argo

Etapa 1: Configure o banco de dados ApsaraDB RDS for MySQL

  1. Crie uma instância do ApsaraDB RDS for MySQL. Para obter as etapas detalhadas, consulte Criar uma instância RDS MySQL.

  2. Crie um banco de dados na instância e configure uma conta de banco de dados.

  3. Configure a virtual private cloud (VPC) da instância. A VPC deve ser a mesma utilizada pelo cluster ACK.

    Importante

    Adicione o bloco CIDR dessa VPC à lista de permissões de IP da instância RDS. Caso contrário, o controlador do Argo Workflow não conseguirá se conectar ao banco de dados.

  4. Anote o endpoint do banco de dados, o nome do banco de dados, o nome de usuário e a senha para usar na próxima etapa.

Nota

Para obter detalhes sobre o faturamento do RDS, consulte Itens faturáveis.

Etapa 2: Crie um Secret para as credenciais do banco de dados

No namespace argo, crie um Secret chamado argo-mysql-config para armazenar as credenciais do banco de dados:

apiVersion: v1
kind: Secret
metadata:
  name: argo-mysql-config
  namespace: argo
type: Opaque
stringData:
  username: <your-database-username>  # Replace with your RDS database account
  password: <your-database-password>  # Replace with your RDS database password

Aplique o Secret:

kubectl apply -f argo-mysql-secret.yaml

Etapa 3: Adicionar a configuração de persistência ao ConfigMap

Modifique o workflow-controller-configmap no namespace argo. Adicione a seguinte configuração de persistência no campo 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.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

Parâmetros principais

Parâmetro

Descrição

host

Endpoint da instância do ApsaraDB RDS for MySQL

port

Porta da instância RDS. A porta padrão do MySQL é 3306

database

Nome do banco de dados criado na Etapa 1

tableName

Obrigatório. Nome da tabela para armazenamento dos dados de workflow

archive

Habilita a persistência de workflow. Defina como true

archiveTTL

Período de retenção para workflows arquivados. Sem valor máximo. Exemplo: 30d retém dados por 30 dias

maxIdleConns

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

maxOpenConns

Número máximo de conexões abertas. 0 indica ilimitado

connMaxLifetime

Tempo de vida máximo de uma conexão. 0s significa sem limite

Etapa 4: Reiniciar os componentes do Argo

Os componentes principais do Argo não detectam automaticamente alterações no ConfigMap. Reinicie o controlador do Argo Workflow e o Argo Server para aplicar a configuração de persistência:

kubectl rollout restart deployment workflow-controller -n argo
kubectl rollout restart deployment argo-server -n argo

Verifique a configuração

Após reiniciar os componentes, verifique se a configuração de persistência foi aplicada:

  1. Verifique nos logs do controlador do Argo Workflow se há mensagens de conexão com o banco de dados:

       kubectl logs deployment/workflow-controller -n argo | grep -i persist
  2. Execute um workflow de teste. Após a conclusão, confirme se os dados foram armazenados no banco de dados RDS.

Faturamento

A configuração da persistência de workflow gera os seguintes custos adicionais:

  • ApsaraDB RDS for MySQL: Taxas de instância baseadas na especificação e na capacidade de armazenamento selecionadas. Para mais detalhes, consulte Itens faturáveis.