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

Si vous avez déjà installé velero CLI avec une version antérieure de TKG, vous devez mettre à niveau Velero vers la version v1.11.1. Pour plus d'informations, reportez-vous à la section Mettre à niveau Velero ci-dessous.

Pour installer Velero CLI v1.11.1, 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.

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

Mettre à niveau Velero

Si vous avez mis à niveau TKG de la version v2.3 vers la version v2.4, vous devez mettre à niveau Velero vers la version v1.11.1.

Important

Velero v1.10.x utilise des définitions de ressources personnalisées (CRD, Custom Resource Definition) différentes, une dénomination de composants différente et fonctionne différemment de la version v1.9.x. Si vous utilisiez toujours Velero v1.9.x avec TKG 2.3 et que vous avez effectué la mise à niveau vers TKG 2.4, vous devez mettre à niveau Velero de la version v1.9.x vers la version v1.10.x avant de pouvoir effectuer la mise à niveau vers la version v1.11.1. Pour obtenir des instructions sur la mise à niveau de Velero de la version v1.9.x vers la version v1.10.x, suivez la procédure pour Mettre à niveau Velero dans la documentation de TKG 2.3 avant de mettre à niveau Velero vers la version v1.11.1.

Pour mettre à niveau Velero de la version v1.10.x vers la version v1.11.1, procédez comme suit.

  1. Suivez la procédure décrite dans la section Installer Velero CLI pour installer Velero v1.11.1.
  2. Mettez à jour les définitions CRD avec le fichier binaire Velero v1.11.1.

    velero install --crds-only --dry-run -o yaml | kubectl apply -f -
    
  3. Mettez à jour la configuration du déploiement Velero pour utiliser la nouvelle version de Velero et la version du plug-in Velero pour votre infrastructure.

    vSphere
    kubectl set image deployment/velero \
        velero=velero/velero:v1.11.1 \
        velero-plugin-for-vsphere=velero/velero-plugin-for-vsphere:v1.5.1 \
        --namespace velero
    
    AWS
    kubectl set image deployment/velero \
        velero=velero/velero:v1.11.1 \
        velero-plugin-for-aws=velero/velero-plugin-for-aws:v1.7.1 \
        --namespace velero
    
    Azure
    kubectl set image deployment/velero \
        velero=velero/velero:v1.11.1 \
        velero-plugin-for-microsoft-azure=velero/velero-plugin-for-microsoft-azure:v1.7.1 \
        --namespace velero
    
  4. (Facultatif) Si vous utilisez l'ensemble de démons node, mettez à jour la version de l'agent de nœud.

    kubectl set image daemonset/node-agent \
       node-agent=velero/velero:v1.11.1 \
       --namespace velero 
    

Pour plus d'informations, reportez-vous à la section Mise à niveau vers Velero 1.11 dans la documentation de 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.5.1.

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.

Remarque

Si Velero est déjà installé sur le cluster, suivez les étapes décrites dans la section Mettre à niveau Velero.

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.7.1_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. 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.7.1_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.

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

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

    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

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

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