Sauvegarder et restaurer des charges de travail de cluster

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.

Configurer Velero

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 :

  • Configurez des hooks antérieurs et postérieurs pour la sauvegarde et la restauration, afin d'exécuter des processus personnalisés avant ou après des événements de sauvegarde et de restauration.
  • Exclusion des aspects de la charge de travail ou de l'état du cluster qui ne sont pas adaptés à la sauvegarde/restauration.

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.

Installer Velero CLI

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 :

  1. Accédez à la page de téléchargements de Tanzu Kubernetes Grid et connectez-vous avec vos informations d'identification VMware Customer Connect.
  2. Sous Téléchargements de produits, cliquez sur Accéder aux téléchargements.
  3. Faites défiler jusqu'aux entrées Velero et téléchargez le fichier Velero CLI .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-.
  4. Utilisez la commande gunzip ou l'outil d'extraction de votre choix pour décompresser le fichier binaire :

    gzip -d <RELEASE-TARBALL-NAME>.gz
    
  5. 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 :

      1. Déplacez le fichier binaire dans le dossier /usr/local/bin et renommez-le en velero.
      2. Rendez le fichier exécutable :
      chmod +x /usr/local/bin/velero
      
    • Plates-formes Windows :

      1. Créez un dossier Program Files\velero et copiez-y le fichier binaire.
      2. Renommez le fichier binaire en velero.exe.
      3. Cliquez avec le bouton droit sur le dossier 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).
      4. Utilisez la recherche Windows pour rechercher env.
      5. Sélectionnez Modifier les variables d'environnement système (Edit the system environment variables) puis cliquez sur le bouton Variables d'environnement (Environment Variables).
      6. Sélectionnez la ligne Path sous Variables système (System variables), puis cliquez sur Modifier (Edit).
      7. Cliquez sur Nouveau (New) pour ajouter une nouvelle ligne et entrez le chemin d'accès au fichier binaire velero.

Configurer un fournisseur de stockage

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 :

  • Sauvegardes de stockage d'objets de cluster pour les métadonnées Kubernetes dans les clusters
  • Snapshots de volume pour les données utilisées par les clusters

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 :

  • Un fournisseur de stockage cloud en ligne.
  • Un service de stockage d'objets sur site, tel que MinIO, pour les environnements mis en proxy ou isolés.

VMware recommande de dédier un compartiment de stockage unique à chaque cluster.

Pour configurer MinIO :

  1. 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
    
  2. 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
    

Stockage pour vSphere

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.

Stockage pour et sur AWS

Pour configurer le stockage pour Velero sur AWS, suivez les procédures du référentiel Plug-ins Velero pour AWS :

  1. Créer un compartiment S3.

  2. Définir des autorisations pour Velero.

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.

Stockage pour et sur Azure

Pour configurer le stockage pour Velero sur Azure, suivez les procédures du référentiel Plug-ins Velero pour Azure :

  1. Créer un compte de stockage Azure et un conteneur blob

  2. Obtenir le groupe de ressources contenant vos machines virtuelles et vos disques

  3. Définir des autorisations pour Velero

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.

Déployer le serveur Velero sur des clusters de charge de travail

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.

Mettre à jour les CRD à partir de versions antérieures de 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 :

  1. Mettez à niveau les CRD :

    velero install --crds-only --dry-run -o yaml | kubectl apply -f -
    
  2. 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
    
  3. 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
    
  4. 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
    

Options d'installation de 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.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
  • (Facultatif) --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.

Installer Velero sur des clusters sur vSphere

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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 :

    1. Téléchargez l'image Plugin Velero pour vSphere v1.4.2.
    2. 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
      
    3. (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"
      
    4. 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
      
    5. 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
      
    6. Appliquez la ConfigMap :

      kubectl -n velero apply -f velero-plugin.conf
      
    7. Ajoutez le plug-in :

      velero plugin add PLUGIN-IMAGE
      

      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.

    8. 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 :

      • Configuration > Basculer le suivi des changements de disques
      • Provisionnement > Autoriser l'accès au disque en lecture seule
      • Provisionnement > Autoriser le téléchargement de machines virtuelles
      • Gestion des snapshots > Créer un snapshot
      • Gestion des snapshots > Supprimer le snapshot

Installer Velero sur des clusters sur AWS

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.

  1. 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.

  2. Exécutez velero install avec les options répertoriées dans les Options d'installation Velero ci-dessus.

Installer Velero sur des clusters sur Azure

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.

  1. 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.

  2. Exécutez velero install avec les options répertoriées dans les Options d'installation Velero ci-dessus.

Sauvegarder et restaurer des charges de travail

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.

Sauvegarder les charges de travail

Pour sauvegarder le contenu d’un cluster de charge de travail :

  1. 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.

  2. Sauvegardez le contenu du cluster :

    velero backup create your_backup_name
    
  3. 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.

Remarque

La sauvegarde et la restauration des clusters de charge de travail Windows et avec plusieurs systèmes d'exploitation ne sont pas prises en charge.

Restaurer des charges de travail

Pour restaurer le contenu d'un cluster de charge de travail à partir d'une sauvegarde :

  1. Créez un cluster. Vous ne pouvez pas restaurer une sauvegarde de cluster sur un cluster existant.

  2. 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.

  3. Restaurez le contenu du cluster :

    velero backup get
    velero restore create your_restore_name --from-backup your_backup_name
    
check-circle-line exclamation-circle-line close-line
Scroll to top icon