Cette rubrique explique comment sauvegarder et restaurer les charges de travail et les volumes de stockage dynamique hébergés sur des clusters de charge de travail Tanzu Kubernetes Grid (TKG) pour TKG avec un cluster de gestion autonome.
Pour sauvegarder et restaurer l'infrastructure du cluster, le cluster de gestion autonome et les objets du cluster de charge de travail eux-mêmes, reportez-vous à la section Sauvegarder et restaurer l'infrastructure du cluster de gestion et de charge de travail.
Pour sauvegarder et restaurer des clusters vSphere with Tanzu, y compris les clusters superviseurs et les clusters de charge de travail qu'ils créent, reportez-vous à la section Sauvegarde et restauration de vSphere with Tanzu dans la documentation de VMware vSphere 8.0.
Vous pouvez utiliser Velero, un outil standard de la communauté open source, pour sauvegarder et restaurer l'infrastructure et les charges de travail de clusters de gestion autonome TKG.
Velero prend en charge divers fournisseurs de stockage pour stocker ses sauvegardes. Velero prend également en charge les éléments suivants :
Un abonnement Tanzu Kubernetes Grid inclut la prise en charge de la distribution Velero testée et compatible de VMware disponible sur la page de téléchargements Tanzu Kubernetes Grid.
Pour sauvegarder et restaurer des clusters TKG, vous avez besoin des éléments suivants :
Une fois les conditions préalables remplies ci-dessus, vous pouvez également utiliser Velero pour migrer les charges de travail entre les clusters. Pour obtenir des instructions, reportez-vous aux sections Migration des clusters et Filtrage des ressources dans la documentation de Velero.
Attention :Si vous avez déjà installé Velero CLI v1.9.x ou une version antérieure, comme distribué avec des versions précédentes de TKG, vous devez effectuer une mise à niveau vers la version v1.10.3. Les anciennes versions de Velero ne fonctionnent pas avec les CRD utilisées dans la version v1.10 et les versions ultérieures. Pour plus d'informations, reportez-vous à la section Mettre à niveau Velero ci-dessous.
Pour installer Velero CLI v1.10.3, procédez comme suit :
.gz
pour le système d'exploitation de votre poste de travail. Son nom de fichier commence par velero-linux-
, velero-mac-
ou velero-windows64-
.Utilisez la commande gunzip
ou l'outil d'extraction de votre choix pour décompresser le fichier binaire :
gzip -d <RELEASE-TARBALL-NAME>.gz
Renommez le fichier binaire de CLI de votre plate-forme en velero
, assurez-vous qu'il est exécutable, puis ajoutez-le à la variable PATH
.
/usr/local/bin
et renommez-le en velero
.chmod +x /usr/local/bin/velero
Program Files\velero
et copiez-y le fichier binaire.velero.exe
.velero
, sélectionnez Propriétés (Properties) > Sécurité (Security) et assurez-vous que votre compte d'utilisateur dispose de l'autorisation Contrôle total (Full Control).env
.Path
sous Variables système (System variables), puis cliquez sur Modifier (Edit).velero
.Velero v1.10.3 utilise des CRD différentes vers la version v1.9.x. En outre, Velero v1.10 a adopté Kopia avec Restic comme chargeur, ce qui a conduit à plusieurs modifications dans l'attribution de nom des composants et des commandes, et dans le mode de fonctionnement de Velero. Pour plus d'informations sur les modifications importantes entre la version v1.9.x et la version v1.10, reportez-vous à la section Modifications importantes dans le journal des modifications de Velero v1.10. Si vous avez installé Velero v1.9.x avec une version précédente de TKG, vous devez mettre à niveau Velero.
Mettez à jour les définitions CRD avec le fichier binaire Velero v1.10.
velero install --crds-only --dry-run -o yaml | kubectl apply -f -
Mettez à jour la configuration du déploiement et de l'ensemble de démons Velero pour qu'elle corresponde au changement de nom des composants qui s'est produit dans Velero v1.10.
Dans la commande ci-dessous, uploader_type
peut être restic
ou kopia
.
kubectl get deploy -n velero -ojson \
| sed "s#\"image\"\: \"velero\/velero\:v[0-9]*.[0-9]*.[0-9]\"#\"image\"\: \"velero\/velero\:v1.10.0\"#g" \
| sed "s#\"server\",#\"server\",\"--uploader-type=$uploader_type\",#g" \
| sed "s#default-volumes-to-restic#default-volumes-to-fs-backup#g" \
| sed "s#default-restic-prune-frequency#default-repo-maintain-frequency#g" \
| sed "s#restic-timeout#fs-backup-timeout#g" \
| kubectl apply -f -
(Facultatif) Si vous utilisez l'ensemble de démons restic
, renommez les composants correspondants.
echo $(kubectl get ds -n velero restic -ojson) \
| sed "s#\"image\"\: \"velero\/velero\:v[0-9]*.[0-9]*.[0-9]\"#\"image\"\: \"velero\/velero\:v1.10.0\"#g" \
| sed "s#\"name\"\: \"restic\"#\"name\"\: \"node-agent\"#g" \
| sed "s#\[ \"restic\",#\[ \"node-agent\",#g" \
| kubectl apply -f -
kubectl delete ds -n velero restic --force --grace-period 0
Pour plus d'informations, reportez-vous à la section Mise à niveau vers Velero 1.10 dans la documentation de Velero.
Pour sauvegarder le contenu du cluster de charge de travail Tanzu Kubernetes Grid, vous avez besoin des emplacements de stockage pour les éléments suivants :
Reportez-vous à la section Backup Storage Locations and Volume Snapshot Locations dans la documentation de Velero. Velero prend en charge divers fournisseurs de stockage, qui peuvent être les suivants :
VMware recommande de dédier un compartiment de stockage unique à chaque cluster.
Pour configurer MinIO :
Exécutez l'image de conteneur minio
avec les informations d'identification MinIO et un emplacement de stockage, par exemple :
$ docker run -d --name minio --rm -p 9000:9000 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" -e "MINIO_DEFAULT_BUCKETS=mgmt" gcr.io/velero-gcp/bitnami/minio:2021.6.17-debian-10-r7
Enregistrez les informations d'identification dans un fichier local à transmettre à l'option --secret-file
de velero install
, par exemple :
[default]
aws_access_key_id=minio
aws_secret_access_key=minio123
Sur vSphere, les sauvegardes de stockage d'objets de cluster et les snapshots de volume sont enregistrés dans le même emplacement de stockage. Cet emplacement doit être un stockage externe compatible S3 sur Amazon Web Services (AWS) ou un fournisseur S3, tel que MinIO.
Pour configurer le stockage de Velero sur vSphere, reportez-vous à la section Plug-in Velero pour vSphere dans le cluster Vanilla Kubernetes pour le plug-in v1.5.1.
Pour configurer le stockage pour Velero sur AWS, suivez les procédures du référentiel Plug-ins Velero pour AWS :
Configurez le stockage S3 si nécessaire pour chaque plug-in. Le plug-in de magasin d'objets stocke et récupère les sauvegardes d'objets de cluster, et l'outil de snapshot de volume stocke et récupère les volumes de données.
Pour configurer le stockage pour Velero sur Azure, suivez les procédures du référentiel Plug-ins Velero pour Azure :
Configurez le stockage S3 si nécessaire pour chaque plug-in. Le plug-in de magasin d'objets stocke et récupère les sauvegardes d'objets de cluster, et l'outil de snapshot de volume stocke et récupère les volumes de données.
Pour déployer le serveur Velero sur un cluster de charge de travail, exécutez la commande velero install
. Cette commande crée un espace de noms appelé velero
sur le cluster et y place un déploiement nommé velero
.
RemarqueSi Velero est déjà installé sur le cluster, suivez les étapes décrites dans la section Mettre à niveau Velero.
Pour installer Velero, exécutez velero install
avec les options suivantes :
--provider $PROVIDER
: Par exemple, aws
--plugins projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.6.2_vmware.1
--bucket $BUCKET
: Nom de votre compartiment S3--backup-location-config region=$REGION
: Région AWS dans laquelle se trouve le compartiment--snapshot-location-config region=$REGION
: Région AWS dans laquelle se trouve le compartiment--kubeconfig
, pour installer le serveur Velero sur un cluster autre que celui actuellement défini par défaut.(Facultatif) --secret-file ./VELERO-CREDS
: une façon de donner à Velero l'accès à un compartiment S3 sur AWS consiste à transmettre à cette option un fichier VELERO-CREDS
local qui ressemble à :
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
Pour obtenir des options supplémentaires, reportez-vous à la section Install and start Velero.
L'exécution de cette commande velero install
crée un espace de noms appelé velero
sur le cluster, dans lequel un déploiement nommé velero
est placé.
La manière dont vous exécutez la commande velero install
et configurez Velero sur un cluster dépend de votre infrastructure et de votre fournisseur de stockage, comme décrit dans les sections suivantes.
Cette procédure installe Velero sur des clusters de charge de travail gérés par un cluster de gestion autonome sur vSphere.
Pour déployer Velero sur un cluster superviseur vSphere with Tanzu qui sert de cluster de gestion Tanzu Kubernetes Grid, reportez-vous à la section Configuration et restauration de vSphere with Tanzu.
Installez le serveur Velero sur le cluster par défaut actuel de votre kubeconfig
en exécutant velero install
avec les options répertoriées dans Options d'installation de Velero ci-dessus.
Par exemple, pour utiliser MinIO comme stockage d'objets, suivez les indications de la section MinIO server setup instructions dans la documentation de Velero :
velero install --provider aws --plugins "projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.6.2_vmware.1" --bucket velero --secret-file ./credentials-velero --backup-location-config "region=minio,s3ForcePathStyle=true,s3Url=minio_server_url" --snapshot-location-config region="default"
Pour plus d'informations, reportez-vous à la section Installer pour les clusters Vanilla Kubernetes dans le plug-in Velero pour le référentiel vSphere v1.5.1.
L'installation du serveur Velero sur le cluster crée un espace de noms dans le cluster nommé velero
et y place un déploiement nommé velero
.
Si vous n'avez pas transmis de fichier d'informations d'identification à --secret-file
avec velero install
ci-dessus, configurez l'accord de l'accès à Velero à partir de votre compartiment S3 de sauvegarde. Sur AWS, par exemple, attachez une stratégie au rôle IAM nodes.tkg.cloud.vmware.com
, qui régit les applications hébergées telles que Velero, pour autoriser l'accès au compartiment S3.
Ajoutez le plug-in Velero pour vSphere qui permet à Velero d'utiliser votre compartiment S3 pour stocker des snapshots de volume CSI pour les données de charge de travail en plus du stockage des objets de cluster :
Récupérez et décodez les informations d'identification vSphere utilisées par votre pilote CSI dans un fichier de configuration secret csi-vsphere.conf
:
kubectl -n vmware-system-csi get secret vsphere-config-secret -o jsonpath='{.data.csi-vsphere\.conf}'| base64 -d > csi-vsphere.conf
(Facultatif) Vérifiez et confirmez les valeurs d'adresse IP, de nom d'utilisateur et de mot de passe vCenter dans le fichier de configuration secret csi-vsphere.conf
, qui ressemble à cela :
cluster-id = "CLUSTER-ID"
[VirtualCenter "VCENTER-IP"]
user = "USERNAME"
password = "PASSWORD"
port = "443"
Utilisez le fichier de configuration pour créer le secret velero-vsphere-config-secret
dans l'espace de noms velero
:
kubectl -n velero create secret generic velero-vsphere-config-secret --from-file=csi-vsphere.conf
Créez un fichier ConfigMap
velero-plugin.conf
pour le plug-in Velero qui fait référence au secret :
apiVersion: v1
kind: ConfigMap
metadata:
name: velero-vsphere-plugin-config
data:
cluster_flavor: VANILLA
vsphere_secret_name: velero-vsphere-config-secret
vsphere_secret_namespace: velero
Appliquez la ConfigMap
:
kubectl -n velero apply -f velero-plugin.conf
Ajoutez le plug-in :
velero plugin add PLUGIN-IMAGE
PLUGIN-IMAGE
correspond au chemin d'accès du registre à l'image de conteneur répertoriée dans le référentiel du plug-in Velero pour vSphere v1.5.1, par exemple, http://projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.5.1_vmware.1
.
Activez le plug-in en ajoutant les autorisations VirtualMachine suivantes au rôle que vous avez créé pour le compte Tanzu Kubernetes Grid, si vous ne les avez pas déjà incluses lorsque vous avez créé le compte :
velero install
avec les options répertoriées dans les Options d'installation Velero ci-dessus.velero install
avec les options répertoriées dans les Options d'installation Velero ci-dessus.Utilisez Velero pour sauvegarder et restaurer les charges de travail actuelles d'un cluster de charge de travail et l'état des volumes persistants pour des clusters entiers ou des espaces de noms spécifiques.
Pour sauvegarder le contenu d’un cluster de charge de travail :
Suivez les instructions de la section Déployer le serveur Velero sur des clusters pour votre infrastructure ci-dessus, afin de déployer un serveur Velero sur le cluster de charge de travail ainsi que le plug-in Velero pour vSphere, si nécessaire.
Sauvegardez le contenu du cluster :
velero backup create your_backup_name
Si velero backup
renvoie une erreur transport is closing
, réessayez après avoir augmenté la limite de mémoire, comme décrit dans la section Update resource requests and limits after install dans la documentation de Velero.
RemarqueLa sauvegarde et la restauration des clusters de charge de travail Windows et avec plusieurs systèmes d'exploitation ne sont pas prises en charge.
Pour restaurer le contenu d'un cluster de charge de travail à partir d'une sauvegarde :
Créez un cluster. Vous ne pouvez pas restaurer une sauvegarde de cluster sur un cluster existant.
Suivez les instructions de la section Déployer le serveur Velero sur des clusters pour votre infrastructure ci-dessus, afin de déployer un serveur Velero sur le nouveau cluster ainsi que le plug-in Velero pour vSphere, si nécessaire.
Restaurez le contenu du cluster :
velero backup get
velero restore create your_restore_name --from-backup your_backup_name