Pour sauvegarder et restaurer des charges de travail s'exécutant sur des clusters TKG sur Superviseur, créez une banque de données et installez Velero avec Restic sur le cluster Kubernetes.

Présentation

Les clusters TKG s'exécutent sur des nœuds de machine virtuelle. Pour sauvegarder et restaurer des charges de travail de cluster TKG, installez Velero et Restic sur le cluster.

Conditions requises

Assurez-vous que votre environnement répond aux conditions préalables suivantes pour installer Velero et Restic afin de sauvegarder et restaurer des charges de travail s'exécutant sur des clusters Tanzu Kubernetes.
  • Machine virtuelle Linux disposant d'un stockage suffisant pour stocker plusieurs sauvegardes de charge de travail. Vous allez installer MinIO sur cette machine virtuelle.
  • Machine virtuelle Linux sur laquelle les Outils de l'interface de ligne de commande Kubernetes pour vSphere sont installés, y compris le Plug-in vSphere pour kubectl et kubectl. Vous allez installer Velero CLI sur cette machine virtuelle cliente. Si vous ne disposez pas d'une telle machine virtuelle, vous pouvez installer Velero CLI localement, mais vous devez ajuster les étapes d'installation en conséquence.
  • L'environnement Kubernetes dispose d'un accès à Internet et est accessible par la machine virtuelle cliente.

Installer et configurer le magasin d'objets MinIO

Velero requiert un magasin d'objets compatible avec S3 comme destination pour les sauvegardes de charges de travail Kubernetes. Velero prend en charge plusieurs fournisseurs de magasins d'objets de ce type. Pour plus de simplicité, ces instructions utilisent MinIO, un service de stockage compatible avec S3 qui s'exécute localement sur la machine virtuelle du magasin d'objets.
  1. Installez MinIO.
    wget https://dl.min.io/server/minio/release/linux-amd64/minio
  2. Accordez des autorisations d'exécution à MinIO.
    chmod +x minio
  3. Créez un répertoire sur le système de fichiers pour MinIO.
    mkdir /DATA-MINIO
  4. Démarrez le serveur MinIO.
    ./minio server /DATA-MINIO
  5. Après le démarrage du serveur MinIO, vous disposez de détails importants concernant l'instance de banque de données, notamment l'URL du point de terminaison, AccessKey et SecretKey. Enregistrez l'URL du point de terminaison, AccessKey et SecretKey dans le tableau.
    Métadonnées de la banque de données Valeur
    URL du point de terminaison
    AccessKey
    SecretKey
  6. Accédez à la banque de données MinIO en ouvrant un navigateur et en accédant à l'URL du point de terminaison du serveur MinIO.
  7. Connectez-vous au serveur MinIO et fournissez AccessKey et SecretKey.
  8. Pour activer MinIO en tant que service, configurez MinIO pour le démarrage automatique en téléchargeant le script minio.service.
    curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
  9. Modifiez le script minio.service et ajoutez la valeur suivante pour ExecStart.
    ExecStart=/usr/local/bin/minio server /DATA-MINIO path
  10. Enregistrez le script révisé.
  11. Configurez le service MinIO en exécutant les commandes suivantes.
    cp minio.service /etc/systemd/system 
    cp minio /usr/local/bin/ 
    systemctl daemon-reload 
    systemctl start minio 
    systemctl status minio 
    systemctl enable minio
  12. Créez un compartiment MinIO pour la sauvegarde et la restauration en lançant le navigateur MinIO et en vous connectant à votre magasin d'objets.
  13. Cliquez sur l'icône Créer un compartiment.
  14. Entrez le nom du compartiment, par exemple : my-cluster-backups.
  15. Vérifiez que le compartiment a été créé.
  16. Par défaut, un nouveau compartiment MinIO est en lecture seule. Pour la sauvegarde et la restauration autonomes de Velero, le compartiment MinIO doit être en lecture-écriture. Pour passer le compartiment en lecture-écriture, sélectionnez-le et cliquez sur le lien de points de suspension.
  17. Sélectionnez Modifier la stratégie.
  18. Définissez la stratégie sur Lecture et écriture.
  19. Cliquez sur Ajouter.
  20. Pour fermer la boîte de dialogue, cliquez sur X.

Installer Velero CLI

Installez Velero CLI sur la machine virtuelle cliente ou sur votre machine locale.

La version utilisée pour cette documentation est Velero 1.9.7 pour Tanzu Kubernetes Grid 2.2.0.
  1. Téléchargez Velero à partir de la page de téléchargement du produit Tanzu Kubernetes Grid à partir du portail VMware Customer Connect.
    Note : Vous devez utiliser le fichier binaire Velero signé par VMware pour bénéficier du support VMware.
  2. Ouvrez une ligne de commande et remplacez le répertoire par le téléchargement de Velero CLI.
  3. Décompressez le fichier de téléchargement. Par exemple :
    gunzip velero-linux-vX.X.X_vmware.1.gz
  4. Recherchez le fichier binaire Velero.
    ls -l
  5. Accordez des autorisations d'exécution à Velero CLI.
    chmod +x velero-linux-vX.X.X_vmware.1 
  6. Rendez Velero CLI disponible de manière globale en la déplaçant vers le chemin d'accès au système :
    cp velero-linux-vX.X.X_vmware.1 /usr/local/bin/velero 
  7. Vérifiez l'installation.
    velero version

Installer Velero et Restic sur le cluster Tanzu Kubernetes

Le contexte de Velero CLI suit automatiquement le contexte kubectl. Avant d'exécuter les commandes de Velero CLI pour installer Velero et Restic sur le cluster cible, définissez le contexte kubectl.
  1. Récupérez le nom du compartiment MinIO. Par exemple, my-cluster-backups.
  2. Obtenez AccessKey et SecretKey pour le compartiment MinIO.
  3. Définissez le contexte du cluster Kubernetes cible afin que Velero CLI sache sur quel cluster travailler.
    kubectl config use-context tkgs-cluster-name
  4. Créez un fichier de secrets nommé credentials-minio. Mettez à jour le fichier avec les informations d'identification d'accès au serveur MinIO que vous avez collectées. Par exemple :
    aws_access_key_id = 0XXNO8JCCGV41QZBV0RQ
    aws_secret_access_key = clZ1bf8Ljkvkmq7fHucrKCkxV39BRbcycGeXQDfx
    Note : Si vous recevez le message d'erreur « Erreur lors de l'obtention d'un magasin de sauvegarde » avec la description « NoCredentialProviders : pas de fournisseur valide dans la chaîne », ajoutez la ligne [default] au début du fichier d'informations d'identification. Par exemple :
    [default]
    aws_access_key_id = 0XXNO8JCCGV41QZBV0RQ
    aws_secret_access_key = clZ1bf8Ljkvkmq7fHucrKCkxV39BRbcycGeXQDfx
  5. Enregistrez le fichier et vérifiez qu'il est en place.
    ls
  6. Exécutez la commande suivante pour installer Velero et Restic sur le cluster Kubernetes cible. Remplacez les deux URL par l'URL de votre instance de MinIO.
    velero install \
    --provider aws \
    --plugins velero/velero-plugin-for-aws:v1.0.0 \
    --bucket tkgs-velero \
    --secret-file ./credentials-minio \
    --use-volume-snapshots=false \
    --use-restic \
    --backup-location-config \
    region=minio,s3ForcePathStyle="true",s3Url=http://10.199.17.63:9000,publicUrl=http://10.199.17.63:9000
  7. Vérifiez l'installation de Velero et de Restic.
    kubectl logs deployment/velero -n velero
  8. Vérifiez l'espace de noms velero.
    kubectl get ns
  9. Vérifiez les espaces velero et restic.
    kubectl get all -n velero

Dépannage du DaemonSet Restic (si nécessaire)

Pour exécuter le DaemonSet Restic à trois espaces sur un cluster Kubernetes, vous devrez peut-être mettre à jour la spécification DaemonSet Restic et modifier le chemin d'accès hostPath. Pour plus d'informations sur ce problème, reportez-vous à la section Integration de Restic dans la documentation de Velero.
  1. Vérifiez le DaemonSet Restic à trois espaces.
    kubectl get pod -n velero

    Si l'état des espaces est CrashLoopBackOff, modifiez-les comme suit.

  2. Exécutez la commande edit.
    kubectl edit daemonset restic -n velero
  3. Remplacez le chemin d'accès hostPath /var/lib/kubelet/pods par /var/vcap/data/kubelet/pods.
    - hostPath:
        path: /var/vcap/data/kubelet/pods
  4. Enregistrez le fichier.
  5. Vérifiez le DaemonSet Restic à trois espaces.
    kubectl get pod -n velero
    NAME                      READY   STATUS    RESTARTS   AGE
    restic-5jln8              1/1     Running   0          73s
    restic-bpvtq              1/1     Running   0          73s
    restic-vg8j7              1/1     Running   0          73s
    velero-72c84322d9-le7bd   1/1     Running   0          10m

Ajuster les limites de mémoire de Velero (si nécessaire)

Si votre sauvegarde Velero renvoie status=InProgress pendant de nombreuses heures, augmentez les limites et les paramètres de demande de mémoire.
  1. Exécutez la commande suivante.
    kubectl edit deployment/velero -n velero
  2. Modifiez les limites et les paramètres de demande de mémoire en passant des valeurs par défaut de 256Mi et 128Mi à 512Mi et 256Mi.
        
    ports:
    - containerPort: 8085
      name: metrics
      protocol: TCP
    resources:
      limits:
        cpu: "1"
        memory: 512Mi
      requests:
        cpu: 500m
        memory: 256Mi
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File