-
Accueil
-
FAQ
-
Fiches Pratiques
-
-
-
-
-
- Ajouter un Utilisateur NetBackup
- Connaitre son Master Serveur de Backup
- Modifier la langue Portail NetBackup
- NetBackup : Erreurs
- Page d'Accueil NSS
- Portail NetBackup
- Prérequis à la sauvegarde
- Reporting Quotidien
- Restauration de VM
- Restauration mode Agent VM
- Sauvegarde : Mode Agent B&R via NSS pour l`offre IAAS
- Sauvegarde de VM
- Suppression de Backup
- Swagger NSS
- Swagger NSS avec Postman
-
- Aucun article
-
-
- NSX-T : Comment configurer une solution IPSEC [EN]
- NSX-T : configuration de DNAT [EN]
- NSX-T : configuration de SNAT [EN]
- NSX-T : Création de T1 [EN]
- NSX-T : Créer et configurer un segment overlay Geneve
- NSX-T: Configurer un Pare-Feu de Passerelle/"Gateway Firewall"
- NSX-T: Configurer un Pare-Feu Distribué
- NSX-T: Créer un VPN Ipsec
- Sauvegarde : Conception globale de l'offre VCOD [EN]
- Sauvegarde : Créer une sauvegarde VCOD [EN]
- Sauvegarde : Guide de l'utilisateur pour l'offre VCOD [EN]
- Sauvegarde : Installation de l'agent Netbackup pour Linux [EN]
- Sauvegarde : Installation de l'agent Netbackup pour Windows [EN]
- VCenter : Réinitialiser le mot de passe de cloudadmin [EN]
- VCenter : Snapshot de VM
- VCenter : Storage Vmotion d'une VM
- VCenter: Cloner une VM
- VCenter: Créer une nouvelle VM
- VCenter: Upgrader les Vmware tools sur une VM
-
- Configuration de gabarit ou de personnalisation sur VCD
- Configurer le Multisite
- Découvrir vROPS Tenant
- Droits et Rôles Utilisateurs
- Federation Certificate expiration
- Gestion des Utilisateurs
- Journal des nouvelles fonctionnalités de VCD sur le Pare-feu
- Langue de l'interface vCloud Director
- Plugin VCD Aria OPS pour les clients
- Portail vCloud Director
- VCloud Director
-
Liste des Services (NGP)
- Accès internet
- API
- Appliance de QoS
- Bare Metal Serveur
- Bare Metal Serveur
- Bare Metal Serveur GPU
- BVPN
- Certifications
- Cluster Dédié
- Cross Connect
- DRaaS avec VCDA
- Dual Site
- HA Dual Room
- Kubernetes
- Licences
- LoadBalancer As A Service
- Outillage
- Politiques de Sauvegarde
- Réplication de VM
- Réseau
- Sécurité
- Stockage Bloc
- Stockage Objet
- Stockage Réseau
- Support & Coaching
- VCenter à la demande
Sauvegarde/Restauration avec Velero
Introduction
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/
À noter !
Cette fiche pratique vous est délivrée pour information uniquement, Velero n’est pas un composant obligatoire. Vous êtes totalement libre d’utiliser n’importe quel autre outil. Aucun support ne sera délivré sur Velero.
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 planification 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é.
tar -xvf <RELEASE-TARBALL-NAME>.tar.gz
chmod ugo+x <RELEASE-TARBALL-NAME>
mv ./<RELEASE-TARBALL-NAME>/usr/local/bin/velero
Exemple :
tar -xvf velero-linux-v1.7.0+vmware.1.tar.gz
chmod ugo+x velero-linux-v1.7.0+vmware.1
mv ./velero-linux-v1.7.0+vmware.1 /usr/local/bin/velero
Vérifiez l’installation
# velero version
Client:
Version: v1.7.0_vmware.1
Git commit: 9e52260568430ecb77ac38a677ce74267a8c2176
Server:
Version: v1.7.0_vmware.1
Installez Velero sur le cluster
- Créer un fichier contenant les informations d’accès au bucket S3.
credentials-velero file :
[default]
aws_access_key_id=<ACCESS_KEY_ID>
aws_secret_access_key=<SECRET_ACCESS_KEY>
À noter !
Même si dans le nom de variable il est spécifié le terme AWS, il faut savoir que Velero est compatible avec d’autres providers, il s’agit juste d’un nom de variable qu’il faut utiliser. La liste des providers est disponible ici https://velero.io/docs/v1.6/supported-providers/ A des fins de test, il est possible de déployer assez simplement un serveur minio pour agir comme un stockage S3.
Lancez l’installation
velero install --provider aws \
--plugins "projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.3.0_vmware.1" \
--bucket <BUCKET NAME> \
--secret-file ./credentials-velero \
--backup-location-config "region=<REGION>,s3ForcePathStyle=true,s3Url=<YOUR_S3_URL>" \
--snapshot-location-config region="<REGION>"
Example avec un serveur minio :
velero install --provider aws \
--plugins "projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.3.0_vmware.1" \
--bucket velero \
--secret-file ./credentials-velero \
--backup-location-config "region=minio,s3ForcePathStyle=true,s3Url=http://100.101.191.4.nip.io" \
--snapshot-location-config region="default"
I0324 09:15:17.781299 2971533 request.go:655] Throttling request took 1.110498807s, request: GET:https://100.101.250.5:6443/apis/policy/v1?timeout=32s
CustomResourceDefinition/backups.velero.io: attempting to create resource
CustomResourceDefinition/backups.velero.io: attempting to create resource client
CustomResourceDefinition/backups.velero.io: created
CustomResourceDefinition/backupstoragelocations.velero.io: attempting to create resource
CustomResourceDefinition/backupstoragelocations.velero.io: attempting to create resource client
CustomResourceDefinition/backupstoragelocations.velero.io: created
CustomResourceDefinition/deletebackuprequests.velero.io: attempting to create resource
CustomResourceDefinition/deletebackuprequests.velero.io: attempting to create resource client
CustomResourceDefinition/deletebackuprequests.velero.io: created
CustomResourceDefinition/downloadrequests.velero.io: attempting to create resource
CustomResourceDefinition/downloadrequests.velero.io: attempting to create resource client
CustomResourceDefinition/downloadrequests.velero.io: created
CustomResourceDefinition/podvolumebackups.velero.io: attempting to create resource
CustomResourceDefinition/podvolumebackups.velero.io: attempting to create resource client
CustomResourceDefinition/podvolumebackups.velero.io: created
CustomResourceDefinition/podvolumerestores.velero.io: attempting to create resource
CustomResourceDefinition/podvolumerestores.velero.io: attempting to create resource client
CustomResourceDefinition/podvolumerestores.velero.io: created
CustomResourceDefinition/resticrepositories.velero.io: attempting to create resource
CustomResourceDefinition/resticrepositories.velero.io: attempting to create resource client
CustomResourceDefinition/resticrepositories.velero.io: created
CustomResourceDefinition/restores.velero.io: attempting to create resource
CustomResourceDefinition/restores.velero.io: attempting to create resource client
CustomResourceDefinition/restores.velero.io: created
CustomResourceDefinition/schedules.velero.io: attempting to create resource
CustomResourceDefinition/schedules.velero.io: attempting to create resource client
CustomResourceDefinition/schedules.velero.io: created
CustomResourceDefinition/serverstatusrequests.velero.io: attempting to create resource
CustomResourceDefinition/serverstatusrequests.velero.io: attempting to create resource client
CustomResourceDefinition/serverstatusrequests.velero.io: created
CustomResourceDefinition/volumesnapshotlocations.velero.io: attempting to create resource
CustomResourceDefinition/volumesnapshotlocations.velero.io: attempting to create resource client
CustomResourceDefinition/volumesnapshotlocations.velero.io: created
Waiting for resources to be ready in cluster...
Namespace/velero: attempting to create resource
Namespace/velero: attempting to create resource client
Namespace/velero: created
ClusterRoleBinding/velero: attempting to create resource
ClusterRoleBinding/velero: attempting to create resource client
ClusterRoleBinding/velero: created
ServiceAccount/velero: attempting to create resource
ServiceAccount/velero: attempting to create resource client
ServiceAccount/velero: created
Secret/cloud-credentials: attempting to create resource
Secret/cloud-credentials: attempting to create resource client
Secret/cloud-credentials: created
BackupStorageLocation/default: attempting to create resource
BackupStorageLocation/default: attempting to create resource client
BackupStorageLocation/default: created
VolumeSnapshotLocation/default: attempting to create resource
VolumeSnapshotLocation/default: attempting to create resource client
VolumeSnapshotLocation/default: created
Deployment/velero: attempting to create resource
Deployment/velero: attempting to create resource client
Deployment/velero: created
Velero is installed! ⛵ Use 'kubectl logs deployment/velero -n velero' to view the status.
Sauvegarde
Pour plus d’informations, il est recommandé de se reporter à la documentation officielle : https://velero.io/docs
Lister les sauvegardes
velero backup get
Faire une sauvegarde ponctuelle
Ceci sauvegarde tous les objets sur cluster
velero backup create mybackup
Sauvegarder les objets d’un namespace spécifique
velero backup create <backup-name> --include-namespaces <namespace>
Sauvegarder en utilisant les labels
velero backup create bananafirstbackup --selector app=banana
Décrire et dépanner une sauvegarde
# velero backup describe mybackup
Name: mybackup
Namespace: velero
Labels: velero.io/storage-location=default
Annotations: velero.io/source-cluster-k8s-gitversion=v1.21.2+vmware.1
velero.io/source-cluster-k8s-major-version=1
velero.io/source-cluster-k8s-minor-version=21
Phase: Completed
Errors: 0
Warnings: 0
Namespaces:
Included: *
Excluded: <none>
Resources:
Included: *
Excluded: <none>
Cluster-scoped: auto
Label selector: <none>
Storage Location: default
Velero-Native Snapshot PVs: auto
TTL: 720h0m0s
Hooks: <none>
Backup Format Version: 1.1.0
Started: 2022-03-24 10:48:43 +0000 UTC
Completed: 2022-03-24 10:49:03 +0000 UTC
Expiration: 2022-04-23 10:48:43 +0000 UTC
Total items to be backed up: 1014
Items backed up: 1014
Velero-Native Snapshots: <none included>
Récupérer les journaux d’une sauvegarde
velero backup logs mybackup
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)
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
velero schedule create NAME --schedule="* * * * *" [options]
Par example, cette commande programme une sauvegarde tous les jours à 03:00.
velero schedule create example-schedule --schedule="0 3 * * *"
Restore
Restaurer toutes les ressources dans le même namespace.
velero restore create RESTORE_NAME --from-backup BACKUP_NAME
Restaurer les ressources dans un autre namespace
velero restore create RESTORE_NAME --from-backup BACKUP_NAME
À noter !
Il est aussi possible de filtrer les éléments à restaurer en utilisant des filtres pendant la restauration (–include-namespaces, –selector)…
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.
kubectl patch cluster workload_cluster_name --type='merge' -p '{"spec":{"paused": true}}'