Terug naar overzicht

Manuel Velero

Il peut parfois arriver que vous commettiez une erreur dans votre cluster Kubernetes de production et que vous souhaitiez la corriger le plus rapidement possible. Plus rapidement encore que de redéployer l'ensemble de votre cluster. Avec Velero (https://velero.io/), c'est possible.

Velero est un outil open source sponsorisé par VMware qui permet de sauvegarder, migrer et restaurer en toute sécurité des clusters Kubernetes. L'outil fonctionne comme un processus serveur (déploiement) dans votre cluster. Vous disposez également d'un client CLI sur votre bureau qui vous permet de contrôler le service. Ce client CLI vous permet de créer, restaurer, planifier et supprimer des sauvegardes.

Dans ce guide, nous vous expliquons comment configurer cela en combinaison avec le stockage d'objets S3. Dans ce guide, nous utilisons une station de travail Linux. Pour Windows ou MacOS, vous devrez adapter certaines étapes.

Conditions préalables :

  • Un cluster Kubernetes opérationnel dans Previder PaaS+
  • L'outil cli kubectl configuré pour votre cluster (https://www.virtuozzo.com/appl...)
  • Un compartiment S3 avec des identifiants (Previder Object Storage ou autre stockage compatible S3)

Étape 1, installer le client Velero.


Trouvez la version adaptée à votre système d'exploitation sur cette page GitHub : https://github.com/vmware-tanz...

Téléchargez le client Velero dans votre dossier /tmp.

❯ cd /tmp

❯ wget https://link_van_git

Décompressez l'archive tar.

❯ tar -xvzf velero-v1.5.3-linux-amd64.tar.gz

Le fichier binaire velero se trouve désormais dans votre répertoire /tmp. Vous pouvez déjà tester s'il fonctionne.

❯ ./velero-v1.5.3-linux-amd64/velero help

Si tout fonctionne correctement, déplacez le fichier binaire vers votre PATH. Sous Linux (Ubuntu), vous pouvez le faire en le déplaçant vers /usr/local/bin

❯ sudo mv velero-v1.5.3-linux-amd64/velero /usr/local/bin/velero

Étape 2 Configurer le stockage S3

Créez un fichier de configuration (credentials-velero) pour le compartiment S3 dans votre dossier personnel avec les informations d'identification de votre compartiment

[default]

aws_access_key_id =

aws_secret_access_key =

Étape 3 Installation de Velero dans le cluster Kubernetes

Vous pouvez maintenant installer velero à l'aide de la commande suivante. Veillez à indiquer le bon bucket dans le paramètre bucket et l'URL de votre magasin d'objets dans l'URL s3, dans ce cas celle de Previder.

❯ velero install \

--provider aws \

--plugins velero/velero-plugin-for-aws \

--bucket mijnvelerobucket \

--secret-file ./credentials-velero \

--use-volume-snapshots=false \

--wait \

--backup-location-config region=NL,s3ForcePathStyle=« true »,s3Url=https://object.previder.nl

Une fois l'installation terminée, vous pouvez la vérifier via

❯ kubectl get deployments -l component=velero –namespace=velero

Vous obtiendrez alors le résultat suivant

Étape 4 Tests

Pour ce test, vous pouvez utiliser l'application exemple fournie dans l'archive tarball de l'étape 1. Vous pouvez bien sûr utiliser n'importe quelle autre application.

❯ kubectl apply -f examples/nginx-app/base.yaml

namespace/nginx-example créé

deployment.apps/nginx-deployment créé

Créez maintenant une sauvegarde de cette application nginx à l'aide de la commande suivante

❯ velero backup create nginx-backup --selector app=nginx

Nous pouvons vérifier si tout s'est bien passé à l'aide de :

❯ velero backup describe nginx-backup

Ensuite, nous supprimons tout l'espace de noms dans lequel l'application de test nginx s'exécute.

❯ kubectl delete namespace nginx-example

Et vérifiez que tout a bien été supprimé.

❯ kubectl get deployments --namespace=nginx-example

❯ kubectl get services --namespace=nginx-example

❯ kubectl get namespace/nginx-example

Restaurer l'application nginx

❯ velero restore create --from-backup nginx-backup

Vérifiez que l'espace de noms et les services sont bien de retour :

❯ kubectl get namespace/nginx-example

❯ kubectl get services --namespace=nginx-example

Autres conseils

Au lieu d'effectuer une sauvegarde manuellement, vous pouvez également la planifier avec cron. Par exemple, pour sauvegarder notre application de démonstration nginx chaque nuit à 1 heure :

❯ velero schedule create nginx-daily --schedule=« 0 1 * * * » --selector app=nginx

Vous pouvez supprimer la sauvegarde avec

❯ velero backup delete nginx-backup

Pour supprimer tout ce qui concerne ce test du cluster

❯ kubectl delete namespace/velero clusterrolebinding/velero

❯ kubectl delete crds -l component=velero

❯ kubectl delete -f examples/nginx-app/base.yaml