Vous pouvez utiliser le Plug-in Velero pour vSphere pour sauvegarder et restaurer des charges de travail exécutées sur un cluster TKGS en installant le Plug-in Velero pour vSphere sur ce cluster.

Présentation

Le Plug-in Velero pour vSphere fournit une solution pour la sauvegarde et la restauration des charges de travail de cluster TKGS. Pour les charges de travail persistantes, le Plug-in Velero pour vSphere vous permet de prendre des snapshots des volumes persistants.
Note : Si vous avez besoin d'une portabilité pour les charges de travail de cluster TKGS que vous souhaitez sauvegarder et restaurer, n'utilisez pas le Plug-in Velero pour vSphere. Pour la portabilité entre les clusters Kubernetes, utilisez une instance autonome de Velero avec Restic.

Condition préalable : installez le Plug-in Velero pour vSphere sur le Superviseur

L'installation du Plug-in Velero pour vSphere sur un cluster TKGS nécessite que le Superviseur soit installé sur le Plug-in Velero pour vSphere. En outre, le Superviseur doit être configuré avec la mise en réseau NSX. Reportez-vous à la section .

Étape 1 : installer la CLI Velero sur un poste de travail Linux

La CLI Velero est l'outil standard pour l'interfaçage avec Velero. La CLI Velero offre plus de fonctionnalités que la CLI Plug-in Velero pour vSphere (velero-vsphere) et est requise pour la sauvegarde et la restauration de charges de travail de cluster Tanzu Kubernetes.

Installez la CLI Velero sur un poste de travail Linux. Idéalement, il s'agit du même hôte intermédiaire que celui sur lequel vous exécutez les CLI associées pour votre environnement vSphere IaaS control plane, y compris kubectl, kubectl-vsphere et velero-vsphere.

Les numéros de version de Velero sont présentés sous la forme X.Y.Z. Reportez-vous à la matrice de compatibilité Velero pour connaître les versions spécifiques à utiliser et remplacez-les en conséquence lors de l'exécution des commandes.

Effectuez les étapes suivantes pour installer la CLI Velero.
  1. Exécutez les commandes suivantes :
    $ wget https://github.com/vmware-tanzu/velero/releases/download/vX.Y.Z/velero-vX.Y.Z-linux-amd64.tar.gz
    $ gzip -d velero-vX.Y.Z-linux-amd64.tar.gz && tar -xvf velero-vX.Y.Z-linux-amd64.tar
    $ export PATH="$(pwd)/velero-vX.Y.Z-linux-amd64:$PATH"
     
    $ which velero
    /root/velero-vX.Y.Z-linux-amd64/velero
  2. Vérifiez l'installation de la CLI Velero.
    velero version
    
    Client:
        Version: vX.Y.Z

Étape 2 : obtenir les détails du compartiment compatible S3

Pour des raisons de commodité, les étapes supposent que vous utilisez le même magasin d'objets compatible S3 que celui que vous avez configuré lors de l'installation de Plug-in Velero pour vSphere sur le Superviseur. En production, vous souhaiterez peut-être créer un magasin d'objets séparé.

Pour installer le Plug-in Velero pour vSphere, vous devez fournir les informations suivantes sur votre magasin d'objets compatible S3.
Élément de données Valeur d'exemple
s3Url

http://my-s3-store.example.com

aws_access_key_id ACCESS-KEY-ID-STRING
aws_secret_access_key SECRET-ACCESS-KEY-STRING
Créez un fichier de secrets nommé s3-credentials avec les informations suivantes. Vous référencerez ce fichier lorsque vous installerez le Plug-in Velero pour vSphere.
aws_access_key_id = ACCESS-KEY-ID-STRING
aws_secret_access_key = SECRET-ACCESS-KEY-STRING

Étape 3 Option A : installer le Plug-in Velero pour vSphere sur le cluster TKG à l'aide d'une étiquette (nouvelle méthode)

Si vous utilisez vSphere 8 Update 3 ou version ultérieure, vous pouvez installer automatiquement le Plug-in Velero pour vSphere dans un cluster TKG en ajoutant une étiquette.
  1. Vérifiez que l'emplacement de stockage de sauvegarde est accessible.
  2. Vérifiez que le Service de superviseur Velero vSphere Operator Core est activé.
    kubectl get ns | grep velero
    svc-velero-domain-c9                        Active   18d
  3. Vérifiez qu'un espace de noms Kubernetes nommé velero est créé sur le Superviseur.
    kubectl get ns | grep velero
    svc-velero-domain-c9                        Active   18d
    velero                                      Active   1s
  4. Vérifiez que le Service de superviseur du Plug-in Velero pour vSphere est activé sur le Superviseur.
    velero version
    Client:
            Version: v1.11.1
            Git commit: bdbe7eb242b0f64d5b04a7fea86d1edbb3a3587c
    Server:
            Version: v1.11.1
    kubectl get veleroservice -A
    NAMESPACE   NAME      AGE
    velero      default   53m
    velero backup-location get
    NAME      PROVIDER   BUCKET/PREFIX   PHASE       LAST VALIDATED                  ACCESS MODE   DEFAULT
    default   aws        velero          Available   2023-11-20 14:10:57 -0800 PST   ReadWrite     true
  5. Activez Velero pour le cluster TKG cible en ajoutant l'étiquette velero au cluster.
    kubectl label cluster CLUSTER-NAME --namespace CLUSTER-NS velero.vsphere.vmware.com/enabled=true
    Note : Cela est effectué à partir de l' Espace de noms vSphere lorsque le cluster est provisionné.
  6. Vérifiez que Velero est installé et prêt pour le cluster.
    kubectl get ns
    NAME                                 STATUS   AGE
    ...
    velero                               Active   2m    <--
    velero-vsphere-plugin-backupdriver   Active   2d23h
    kubectl get all -n velero
    NAME                                 READY   STATUS    RESTARTS   AGE
    pod/backup-driver-5945d6bcd4-gtw9d   1/1     Running   0          17h
    pod/velero-6b9b49449-pq6b4           1/1     Running   0          18h
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/backup-driver   1/1     1            1           17h
    deployment.apps/velero          1/1     1            1           18h
    NAME                                       DESIRED   CURRENT   READY   AGE
    replicaset.apps/backup-driver-5945d6bcd4   1         1         1       17h
    replicaset.apps/velero-6b9b49449           1         1         1       18h
    velero version
    Client:
            Version: v1.11.1
            Git commit: bdbe7eb242b0f64d5b04a7fea86d1edbb3a3587c
    Server:
            Version: v1.11.1

Étape 3 Option B : installer manuellement le Plug-in Velero pour vSphere sur le cluster TKG (méthode héritée)

Vous allez utiliser la CLI Velero pour installer le Plug-in Velero pour vSphere sur le cluster TKG cible que vous souhaitez sauvegarder et restaurer.

Le contexte de la CLI Velero suit automatiquement le contexte kubectl. Avant d'exécuter des commandes de la CLI Velero pour installer Velero et le Plug-in Velero pour vSphere sur le cluster cible, veillez à définir le contexte de kubectl sur le cluster cible.
  1. À l'aide du Plug-in vSphere pour kubectl, authentifiez-vous dans le Superviseur.
  2. Définissez le contexte kubectl sur le cluster TKG cible.
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  3. Sur le cluster TKG, créez un configmap pour le plug-in Velero nommé velero-vsphere-plugin-config.yaml.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: velero-vsphere-plugin-config
    data:
      cluster_flavor: GUEST
    Appliquez le configmap sur le cluster TKG.
    kubectl apply -n <velero-namespace> -f velero-vsphere-plugin-config.yaml
    Si vous n'installez pas le configmap, vous recevez l'erreur suivante lorsque vous tentez d'installer le Plug-in Velero pour vSphere.
    Error received while retrieving cluster flavor from config, err: configmaps "velero-vsphere-plugin-config" not found
    Falling back to retrieving cluster flavor from vSphere CSI Driver Deployment
  4. Exécutez la commande CLI Velero suivante pour installer Velero sur le cluster cible.

    Remplacez les valeurs d'espace réservé des champs BUCKET-NAME, REGION (deux instances) et s3Url par les valeurs appropriées. Si vous vous écartez de l'une des instructions précédentes, ajustez également ces valeurs, telles que le nom ou l'emplacement du fichier de secrets, le nom de l'espace de noms velero créé manuellement, etc.

    ./velero install --provider aws \
    --bucket BUCKET-NAME \
    --secret-file ./s3-credentials \
    --features=EnableVSphereItemActionPlugin \
    --plugins velero/velero-plugin-for-aws:vX.Y.Z \
    --snapshot-location-config region=REGION \
    --backup-location-config region=REGION,s3ForcePathStyle="true",s3Url=http://my-s3-store.example.com
  5. Installez le Plug-in Velero pour vSphere sur le cluster cible. L'instance de Velero installée communiquera avec le serveur d'API Kubernetes pour installer le plug-in.
    velero plugin add vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z

Addendum : Désinstaller le Plug-in Velero pour vSphere du cluster TKG

Procédez comme suit pour désinstaller le Plug-in Velero pour vSphere.
  1. Définissez le contexte kubectl sur le cluster Tanzu Kubernetes cible.
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  2. Pour désinstaller le plug-in, exécutez la commande suivante pour supprimer InitContainer de velero-plugin-for-vsphere du déploiement Velero.
    velero plugin remove vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z
  3. Pour terminer le processus, supprimez le déploiement du pilote de sauvegarde et les CRD associés.
    kubectl -n velero delete deployment.apps/backup-driver
    kubectl delete crds \
    backuprepositories.backupdriver.cnsdp.vmware.com \
    backuprepositoryclaims.backupdriver.cnsdp.vmware.com \
    clonefromsnapshots.backupdriver.cnsdp.vmware.com \
    deletesnapshots.backupdriver.cnsdp.vmware.com \
    snapshots.backupdriver.cnsdp.vmware.com
    kubectl delete crds uploads.datamover.cnsdp.vmware.com downloads.datamover.cnsdp.vmware.com