Sauvegarde/Restauration avec Velero

Velero est un outil open source pour sauvegarder et restaurer en toute sécurité, effectuer une reprise après sinistre et migrer les ressources du cluster Kubernetes et les volumes persistants. Velero se compose d’un processus serveur fonctionnant comme un déploiement dans votre cluster Kubernetes et d’une interface en ligne de commande (CLI) avec laquelle les équipes DevOps et les opérateurs de plate-forme configurent les sauvegardes planifiées, déclenchent des sauvegardes ponctuelles, effectuent des restaurations, et plus encore.


Contrairement aux autres outils qui accèdent directement à la base de données Kubernetes etcd pour effectuer des sauvegardes et des restaurations, Velero utilise l’API Kubernetes pour capturer l’état des ressources du cluster et les restaurer si nécessaire. Cette approche axée sur les API présente un certain nombre d’avantages clés :

  • Les sauvegardes peuvent capturer des sous-ensembles de ressources du cluster, filtrant par espace de noms, type de ressource et/ou sélecteur d’étiquettes, offrant un haut degré de flexibilité autour de ce qui est sauvegardé et restauré.
  • Les ressources exposées par les serveurs API agrégés peuvent facilement être sauvegardées et restaurées, même si elles sont stockées dans une base de données distincte.

Pour plus d’information sur Velero : https://velero.io/

Prérequis

  • Un bucket compatible S3 accessible par le cluster pour que velero y stocke les données de sauvegarde.


D’autres type de stockage sont compatibles, la liste se trouve ici : https://velero.io/docs/v1.6/supported-providers/

A des fins de tests, vous pouvez déployer un server minio pour agir comme un stockage objet.

Installation

Outil ligne de commande

Velero est géré par un outil de ligne de commande installé sur votre machine d’administration. L’outil utilise la configuration kubectl actuelle pour se connecter au cluster kubernetes pour faire une sauvegarde, créer une plannification et restaurer

Avant de commencer les binaires de velero doivent être téléchargés depuis le site de VMware. Un compte gratuit sera requis.

Une fois téléchargée, l’archive peut être extraite et Velero installé.

Exemple :

Vérifiez l’installation

Installez Velero sur le cluster

  • Créer un fichier contenant les informations d’accès au bucket S3.

credentials-velero file :

Lancez l’installation

Example avec un serveur minio :

Sauvegarde

Pour plus d’informations, il est recommandé de se reporter à la documentation officielle : https://velero.io/docs

Lister les sauvegardes

Faire une sauvegarde ponctuelle

Ceci sauvegarde tous les objets sur cluster

Sauvegarder les objets d’un namespace spécifique

Sauvegarder en utilisant les labels

Décrire et dépanner une sauvegarde

Récupérer les journaux d’une sauvegarde

Programmer une sauvegarde

La plannification Cron utilise ce format :

# ┌───────────── minute (0 - 59) 
# │ ┌───────────── heure (0 - 23)
# │ │ ┌───────────── jour du mois (1 - 31)
# │ │ │ ┌───────────── mois (1 - 12)
# │ │ │ │ ┌───────────── jour de la semaine (0 - 6) (Dimanche au Samedi;
# │ │ │ │ │ 7 est également dimanche sur certains systèmes)
# │ │ │ │ │
# │ │ │ │ │
# * * * * *




Par example, cette commande programme une sauvegarde tous les jours à 03:00.

Restore

Restaurer toutes les ressources dans le même namespace.

Restaurer les ressources dans un autre namespace

Sauvegarder et Restaurer un cluster de management

Il est possible de sauvegarder et restaurer un cluster de management avec velero, la CustomResourceDefination sera sauvegardée et restaurée via l’API Kubernetes.

Afin de ne pas recréer des ressources en doublons vous pouvez ignorer les namespaces suivants : capi-kubeadm-bootstrap-system, capi-kubeadm-control-plane-system, capi-system, capvcd-system


Avant de lancer une sauvegarde, il est recommandé de mettre le cluster de management en pause afin d’avoir une sauvegarde cohérente et éviter les modifications pendant la sauvegarde.


/!\ Il n’y a aucun impact sur vos clusters de travail.