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