English version here from LayerOps documentation.
Pourquoi il faut penser au processus de sauvegarde.
Si votre service redémarre sur une autre machine, toutes les données stockées dans un volume non sauvegardé seront perdues.
L’une des garanties de LayerOps est que la plateforme n’accède à aucune donnée de l'utilisateur
, et n’introduit aucun verrou sur les données.
Il est donc essentiel et évident que les utilisateurs puissent mettre en place des stratégies de sauvegarde en dehors de LayerOps.
Grâce à sa fonctionnalité Side Task, Layerops permet d’exécuter des conteneurs avant
et après
le conteneur principal.
Cela permet de créer des stratégies de (re)déploiement, y compris des actions sur les données persistantes.
En cas de déploiement d’un service avec un volume persistant, et donc des données à sauvegarder, LayerOps permet d’effectuer des traitements dans différents cas possibles.
Quelques exemples concrets.
Side Tasks preStart: une tâche préalable qui vérifie si des données existent dans le volume persistant du conteneur principal, et si ce n’est pas le cas, le conteneur lancé avant le conteneur principal effectue une restauration des données à partir d’un service S3 externe.
Side Tasks postStart: une post-tâche qui, après le conteneur principal, lance un autre service ayant accès au volume persistant, qui compressera les données spécifiées, en les chiffrant éventuellement, et les enverra à un service S3 externe à la plateforme.
Ce service est configuré comme une tâche planifiée.
Configuration à l’aide de variables d’environnement
Ajouter sideTasks to your service:
sideTasks:
- dockerConfiguration: # Restore - check before main service launched, if data exists in $BACKUP_SOURCES vars
image: registry.nimeops.net/layerops-public/marketplace/backup-volumes
imageVersion: 2.0.0
command:
- /usr/local/bin/restore
type: preStart
isLongLived: false
- dockerConfiguration: # Backup - run as cron after main service launched, with $BACKUP_CRON_PERIOD definition
image: registry.nimeops.net/layerops-public/marketplace/backup-volumes
imageVersion: 2.0.0
type: postStart
isLongLived: true
Ajouter les variables d’environnement
BACKUP_SERVICE_NAME: "MY_SERVICE_NAME" #name of the service that will be used to name the backup archive file
BACKUP_SOURCES: "/var/www/" #list of paths to backup (separated by a ";")
BACKUP_S3_PROVIDER: "Scaleway" #must be a S3 provider supported by rclone's S3 storage provider plugin (see https://rclone.org/s3/ )
BACKUP_S3_ENDPOINT: "s3.fr-par.scw.cloud" #the S3 remote endpoint url
BACKUP_S3_BUCKET: "my-backup-bucket" #the S3 bucket name
BACKUP_S3_PATH: "nextcloud" #(optionnal) the S3 subdirectory inside the bucket
BACKUP_S3_REGION: "fr-par" #the S3 remote region
BACKUP_S3_ACCESS_KEY: #(sensitive)
BACKUP_S3_SECRET_KEY: #(sensitive)
BACKUP_CRON_PERIOD: "0 * * * *" #(optionnal) if set, overrides the default cron settings
BACKUP_ENCRYPT_KEY: (optionnal) #if set, the backup will be encrypted using the given encrypt key
BACKUP_REMOTE_DIR: (optionnal) #if set, Remote dir name (default to files)
BACKUP_RETENTION: "7" #(optionnal) if set, Backup retention in days (default to 7)
BACKUP_COMPRESSION: "targz" #(optionnal) if set, Compression type: zstd (default) and targz
BACKUP_RESTORE_DATE: (optionnal) #if set, specify the date ie 2022_12_26_142528 (for 2022_12_26_142528_var_www.tar.gz)
Utiliser pour les sauvegardes périodiques
Configurer les variables d’environnement (voir ci-dessus)
Exécuter le conteneur avec la commande par défaut (/usr/local/bin/cron), en tant que post-tâche « longue durée » du service principal.
NB : les SOURCES DE SAUVEGARDE doivent pointer vers des chemins qui sont stockés dans des volumes.
Pour la restauration avant d’exécuter le service principal
Configurer les variables d’environnement (voir ci-dessus)
Exécuter le conteneur avec la commande /usr/local/bin/restore, en tant que pré-tâche du service principal.
NB : les SOURCES DE SAUVEGARDE doivent pointer vers des chemins qui sont stockés dans des volumes.
Exemples
Pour plus d’informations sur la configuration des tâches secondaires, veuillez vous référer à la section Side Tasks.
Pour des exemples complets sur la façon de configurer les tâches secondaires pour la sauvegarde et la restauration :