Tous les produits
Search
Centre de documentation

Container Compute Service:Persistance des workflows

Dernière mise à jour :Aug 12, 2026

Argo Workflows supprime périodiquement l'état des workflows et les ressources associées. Configurez une politique de persistance pour archiver les workflows dans une base de données MySQL afin de consulter leurs journaux même après la suppression des workflows ou de leurs pods.

Cette rubrique utilise ApsaraDB RDS for MySQL comme backend de base de données.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster Alibaba Cloud Container Service avec Argo Workflows installé

  • L'accès au namespace argo dans le cluster

  • Les permissions nécessaires pour créer des Secrets et modifier des ConfigMaps dans le cluster

Étape 1 : Configuration d'ApsaraDB RDS for MySQL

Créez une instance ApsaraDB RDS for MySQL, créez une base de données sur cette instance et configurez un compte de base de données. L'instance RDS doit se trouver dans le même Virtual Private Cloud (VPC) que le cluster. Configurez une liste d'autorisation IP sur l'instance pour autoriser l'accès entrant depuis le bloc CIDR du VPC.

Pour obtenir les étapes détaillées, consultez Créer une instance ApsaraDB RDS for MySQL et configurer une base de données.

Une fois la configuration terminée, notez le nom d'utilisateur et le mot de passe du compte de base de données.

Pour connaître les tarifs d'ApsaraDB RDS for MySQL, consultez Éléments facturables .

Étape 2 : Ajout des paramètres de persistance

Ajoutez les paramètres de persistance à la ConfigMap d'Argo Workflows. Par défaut, vous devez redémarrer manuellement le contrôleur Argo Workflows et Argo Server pour que ces paramètres prennent effet.

1. Création d'un Secret pour les identifiants de la base de données

Créez un Secret nommé argo-mysql-config dans le namespace argo pour stocker le nom d'utilisateur et le mot de passe de la base de données.

Option A : Utilisation de kubectl (recommandé)

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

Option B : Utilisation d'un manifeste 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.

Appliquez le manifeste :

kubectl apply -f secret.yaml

2. Mise à jour de la ConfigMap

Modifiez workflow-controller-configmap dans le namespace argo pour ajouter le bloc persistence sous 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

Paramètres clés :

Paramètre Description
archive Définissez cette valeur sur true pour activer la persistance des workflows.
archiveTTL Durée de conservation des workflows archivés. Dans cet exemple, la valeur est définie sur 30d, ce qui signifie que les workflows sont conservés pendant 30 jours. Cette durée ne comporte aucune limite supérieure.
mysql.host Endpoint de l'instance ApsaraDB RDS for MySQL.
mysql.port Port de la base de données. La valeur par défaut est 3306.
mysql.database Nom de la base de données dans laquelle écrire les données du workflow.
mysql.tableName Nom de la table principale des workflows.
connectionPool.maxIdleConns Nombre maximal de connexions inactives dans le pool.
connectionPool.maxOpenConns Nombre maximal de connexions ouvertes. La valeur 0 indique une absence de limite.
connectionPool.connMaxLifetime Durée de vie maximale d'une connexion. La valeur 0s signifie que les connexions n'ont pas de durée de vie maximale.
userNameSecret Référence à la clé du Secret contenant le nom d'utilisateur de la base de données.
passwordSecret Référence à la clé du Secret contenant le mot de passe de la base de données.

3. Redémarrage du contrôleur Argo Workflows et d'Argo Server

Redémarrez le contrôleur Argo Workflows et Argo Server pour appliquer les paramètres de persistance.

Étapes suivantes

  • Pour désactiver la persistance, définissez archive: false dans le bloc persistence et redémarrez le contrôleur Argo Workflows ainsi qu'Argo Server.

  • Pour consulter les workflows archivés, ouvrez l'interface utilisateur d'Argo Server et accédez à la section Archived Workflows.