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.8.1 ou version antérieure, comme distribué avec des versions précédentes de TKG, vous devez effectuer la mise à niveau vers la version v1.9.5. Les anciennes versions de Velero ne fonctionnent pas avec les CRD utilisées dans la version v1.9 et les versions ultérieures.
Pour installer Velero CLI v1.9.5, 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
.
plates-formes macOS et Linux :
/usr/local/bin
et renommez-le en velero
.chmod +x /usr/local/bin/velero
Plates-formes Windows :
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
.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.4.2.
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
.
Si Velero v1.8.1 ou version antérieure est installé sur vos clusters, procédez comme suit pour mettre à jour ses CRD afin qu'elles fonctionnent avec Velero CLI v1.9.5 :
Mettez à niveau les CRD :
velero install --crds-only --dry-run -o yaml | kubectl apply -f -
Mettez à jour l'emplacement de l'image Velero :
kubectl -n velero set image deployment velero velero=projects.registry.vmware.com/tkg/velero/velero:v1.9.5_vmware.1
Mettez à jour les emplacements d'image du plug-in Velero en exécutant une ou plusieurs des commandes suivantes en fonction des plug-ins installés :
kubectl -n velero set image deployment velero velero-plugin-for-csi=projects.registry.vmware.com/tkg/velero/velero-plugin-for-csi:v0.3.3_vmware.1
kubectl -n velero set image deployment velero velero-plugin-for-aws=projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.5.3_vmware.1
kubectl -n velero set image deployment velero velero-plugin-for-microsoft-azure=projects.registry.vmware.com/tkg/velero/velero-plugin-for-microsoft-azure:v1.5.3_vmware.1
kubectl -n velero set image deployment velero velero-plugin-for-vsphere=projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.4.2_vmware.1
Mettez à jour l'emplacement de l'image du DaemonSet Restic :
kubectl -n velero set image DaemonSet restic restic=projects.registry.vmware.com/tkg/velero/velero:v1.9.5_vmware.1
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.5.3_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.
Si Velero est déjà installé sur le cluster à partir de TKG v1.6.x ou d'une version antérieure, suivez les étapes décrites dans Mettre à jour les CRD à partir de versions antérieures de Velero.
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.5.3_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 Install pour les clusters Vanilla Kubernetes dans le plug-in Velero pour le référentiel vSphere v1.4.0.
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
Où PLUGIN-IMAGE
est le 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.4.2, par exemple, http://projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.4.2_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 :
Pour installer Velero sur des clusters de charge de travail sur AWS, suivez la procédure décrite dans la procédure Install and start Velero dans le référentiel des plug-ins Velero pour AWS.
Si Velero est déjà installé sur le cluster à partir de TKG v1.6.x ou d'une version antérieure, suivez les étapes décrites dans Mettre à jour les CRD à partir de versions antérieures de Velero.
Exécutez velero install
avec les options répertoriées dans les Options d'installation Velero ci-dessus.
Pour installer Velero sur des clusters de charge de travail sur Azure, suivez la procédure Install and start Velero dans le référentiel des plug-ins Velero pour Azure.
Si Velero est déjà installé sur le cluster à partir de TKG v1.6.x ou d'une version antérieure, suivez les étapes décrites dans Mettre à jour les CRD à partir de versions antérieures de Velero.
Exécutez 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