BackupPolicy¶
Une configuration BackupPolicy de base se présente comme suit :
apiVersion: k8sbackup.afi.ai/v1alpha1
kind: BackupPolicy
metadata:
name: gold
spec:
selectors: []
repoRef: cloud
schedule:
fixed:
hours: [4, 12, 20]
daysOfWeek: [0, 1, 2, 3, 4, 5, 6]
encryptionKey: default-encryption-key
selectorsest une liste de règles qui sélectionnent les manifestes à inclure dans une sauvegarde. Une liste vide de sélecteurs signifie que tous les fichiers YAML d’un espace de noms sont inclus dans les sauvegardes.`repoRefest le nom d’un référentiel qui stocke les archives. À l’heure actuelle, un référentiel par défaut pour les archives de sauvegarde (cloud) est créé lors de l’intégration du locataire et sert à stocker les données dans le cloud Afi. De prochaines mises à jour permettront d’utiliser des référentiels de sauvegarde personnalisés gérés par l’utilisateur.scheduledemande l’exécution périodique des sauvegardes. Un champschedulevide signifie que les sauvegardes ne sont exécutées que lorsqu’elles sont déclenchées manuellement. Lors de la configuration d’une planification, vous pouvez définir un ensemble de fenêtres de sauvegarde au cours de la journée (avec la listehours) et un ensemble de jours de la semaine pendant lesquels les sauvegardes doivent être effectuées (avec la listedaysOfWeek). L’énumérationhourscommence à 0 pour minuit (0–23) et l’énumérationdaysOfWeekcommence à 0 pour le dimanche (0 – dimanche, 1 – lundi, …, 6 – samedi). Les valeurshourssont interprétées selon le fuseau horaire indiqué lors de l’intégration du cluster. Les sauvegardes planifiées pour une heure donnée doivent être lancées dans une fenêtre de sauvegarde de 15 minutes (par exemple, les sauvegardes planifiées pour l’heure 0, minuit, doivent être lancées entre 00:00 et 00:15).encryptionKeyest le nom d’une clé de chiffrement utilisée par cette stratégie de sauvegarde. Les clés de chiffrement de sauvegarde sont affichées et gérées dans l’onglet Service → Settings → Secrets du portail Afi. La clé de chiffrement créée par Afi lors de l’intégration d’un cluster est nomméedefault-encryption-key(il s’agit du nom par défaut, qui peut être modifié par la suite).
Vous pouvez répertorier les stratégies de sauvegarde configurées dans un cluster Kubernetes en exécutant la commande suivante (backup-agent est l’espace de noms dans lequel l’agent de sauvegarde Afi est installé) :
Vous pouvez créer une stratégie de sauvegarde en exécutant la commande suivante (un exemple de configuration YAML de stratégie de sauvegarde figure ci-dessus) :
Sélecteurs¶
Cette partie d’une stratégie de sauvegarde est une liste de filtres appliqués aux objets d’un espace de noms protégé afin de sélectionner les fichiers YAML à inclure dans les sauvegardes. Chaque sélecteur prend l’une des formes suivantes :
ou
Un sélecteur include ajoute des objets à un instantané, tandis qu’un sélecteur exclude les en retire. Les sélecteurs sont appliqués dans l’ordre où ils sont définis.
Chaque champ d’un sélecteur (apiVersion, kind, etc.) est facultatif. S’il est vide, il correspond à n’importe quel objet.
Le fonctionnement des sélecteurs est mieux illustré par quelques exemples concrets.
Sauvegarder uniquement les Secrets¶
Sauvegarder les Secrets et les ConfigMaps¶
Sauvegarder uniquement la configuration de l’application, sans inclure les données persistantes¶
selectors:
- include: {} # d’abord, tout inclure
- exclude: # puis exclure les éléments inutiles
apiVersion: v1
kind: PersistentVolumeClaim
Ou, à l’inverse, sauvegarder uniquement les données persistantes¶
Sauvegarder uniquement les manifestes portant l’étiquette app.kubernetes.io/name: apache-spark-0¶
Pour plus d’informations sur les sélecteurs d’étiquettes, consultez https://kubernetes.io/fr/docs/concepts/overview/working-with-objects/labels/ et https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#labelselector-v1-meta.