Rechercher

4.5. Dépannage

download PDF

Vous pouvez déboguer les ressources personnalisées (CR) Velero en utilisant l'outil CLI d'OpenShift ou l'outil CLI de Velero. L'outil Velero CLI fournit des journaux et des informations plus détaillés.

Vous pouvez vérifier les problèmes d'installation, de sauvegarde et de restauration de la CR, ainsi que les problèmes liés à Restic.

Vous pouvez collecter des journaux, des informations CR et des données métriques Prometheus à l'aide de l'outilmust-gather .

Vous pouvez obtenir l'outil Velero CLI par :

  • Télécharger l'outil Velero CLI
  • Accès au binaire Velero dans le déploiement Velero dans le cluster

4.5.1. Télécharger l'outil Velero CLI

Vous pouvez télécharger et installer l'outil Velero CLI en suivant les instructions de la page de documentation Velero.

La page comprend des instructions pour :

  • macOS en utilisant Homebrew
  • GitHub
  • Windows en utilisant Chocolatey

Conditions préalables

  • Vous avez accès à un cluster Kubernetes, v1.16 ou plus récent, avec le DNS et la mise en réseau des conteneurs activés.
  • Vous avez installé kubectl localement.

Procédure

  1. Ouvrez un navigateur et accédez à la page "Installer le CLI" sur le site web de Velero.
  2. Suivez la procédure appropriée pour macOS, GitHub ou Windows.
  3. Téléchargez la version de Velero correspondant à votre version d'OADP et d'OpenShift Container Platform selon le tableau suivant :

    Tableau 4.2. OADP-Velero-OpenShift Container Platform relation de version
    Version de l'OADPVersion VeleroVersion d'OpenShift Container Platform

    1.0.0

    1.7

    4.6 et plus

    1.0.1

    1.7

    4.6 et plus

    1.0.2

    1.7

    4.6 et plus

    1.0.3

    1.7

    4.6 et plus

    1.1.0

    1.9

    4.9 et plus

    1.1.1

    1.9

    4.9 et plus

    1.1.2

    1.9

    4.9 et plus

4.5.2. Accès au binaire Velero dans le déploiement Velero dans le cluster

Vous pouvez utiliser une commande shell pour accéder au binaire Velero dans le déploiement Velero dans le cluster.

Conditions préalables

  • Votre ressource personnalisée DataProtectionApplication a le statut Reconcile complete.

Procédure

  • Entrez la commande suivante pour définir l'alias nécessaire :

    $ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'

4.5.3. Déboguer les ressources Velero avec l'outil OpenShift CLI

Vous pouvez déboguer un échec de sauvegarde ou de restauration en vérifiant les ressources personnalisées Velero (CRs) et le journal du pod Velero avec l'outil CLI d'OpenShift.

Velero CRs

Utilisez la commande oc describe pour obtenir un résumé des avertissements et des erreurs associés à un CR Backup ou Restore:

oc describe <velero_cr> <cr_name>
Billes de pods Velero

Utilisez la commande oc logs pour récupérer les journaux du pod Velero:

$ oc logs pod/<velero>
Journaux de débogage du pod Velero

Vous pouvez spécifier le niveau de journalisation de Velero dans la ressource DataProtectionApplication comme le montre l'exemple suivant.

Note

Cette option est disponible à partir de l'OADP 1.0.3.

apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
  name: velero-sample
spec:
  configuration:
    velero:
      logLevel: warning

Les valeurs suivantes sont disponibles sur logLevel:

  • trace
  • debug
  • info
  • warning
  • error
  • fatal
  • panic

Il est recommandé d'utiliser debug pour la plupart des journaux.

4.5.4. Déboguer les ressources Velero avec l'outil Velero CLI

Vous pouvez déboguer Backup et Restore custom resources (CRs) et récupérer les journaux avec l'outil Velero CLI.

L'outil Velero CLI fournit des informations plus détaillées que l'outil OpenShift CLI.

Syntaxe

Utilisez la commande oc exec pour exécuter une commande CLI Velero :

$ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \
  <backup_restore_cr> <command> <cr_name>

Exemple

$ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \
  backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql

Option d'aide

L'option velero --help permet d'obtenir la liste de toutes les commandes CLI de Velero :

$ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \
  --help
Décrire la commande

Utilisez la commande velero describe pour obtenir un résumé des avertissements et des erreurs associés à un CR Backup ou Restore:

$ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \
  <backup_restore_cr> describe <cr_name>

Exemple

$ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \
  backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql

Commande d'enregistrement

Utilisez la commande velero logs pour récupérer les journaux d'un CR Backup ou Restore:

$ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \
  <backup_restore_cr> logs <cr_name>

Exemple

$ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \
  restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf

4.5.5. Problèmes avec Velero et les webhooks d'admission

Velero a des capacités limitées pour résoudre les problèmes liés aux webhooks d'admission lors d'une restauration. Si vous avez des charges de travail avec des webhooks d'admission, vous devrez peut-être utiliser un plugin Velero supplémentaire ou modifier la façon dont vous restaurez la charge de travail.

Généralement, les charges de travail avec des webhooks d'admission exigent que vous créiez d'abord une ressource d'un type spécifique. Cela est particulièrement vrai si votre charge de travail comporte des ressources enfants, car les webhooks d'admission bloquent généralement les ressources enfants.

Par exemple, la création ou la restauration d'un objet de premier niveau tel que service.serving.knative.dev crée automatiquement des ressources enfants. Si vous procédez d'abord à cette opération, vous ne devrez pas utiliser Velero pour créer et restaurer ces ressources. Cela permet d'éviter que les ressources enfants soient bloquées par un webhook d'admission que Velero pourrait utiliser.

4.5.5.1. Solutions de contournement pour la restauration des sauvegardes Velero qui utilisent des webhooks d'admission

Cette section décrit les étapes supplémentaires requises pour restaurer les ressources pour plusieurs types de sauvegardes Velero qui utilisent des webhooks d'admission.

4.5.5.1.1. Restaurer les ressources natives

Vous pouvez rencontrer des problèmes en utilisant Velero pour sauvegarder des ressources Knative qui utilisent des webhooks d'admission.

Vous pouvez éviter ces problèmes en restaurant d'abord la ressource Service de niveau supérieur chaque fois que vous sauvegardez et restaurez des ressources Knative qui utilisent des webhooks d'admission.

Procédure

  • Restaurer la ressource de premier niveau service.serving.knavtive.dev Service:

    $ velero restore <restore_name> \
      --from-backup=<backup_name> --include-resources \
      service.serving.knavtive.dev
4.5.5.1.2. Restauration des ressources IBM AppConnect

Si vous rencontrez des problèmes lorsque vous utilisez Velero pour restaurer une ressource IBM AppConnect dotée d'un webhook d'admission, vous pouvez effectuer les vérifications décrites dans cette procédure.

Procédure

  1. Vérifiez si vous avez des plugins d'admission à la mutation de kind: MutatingWebhookConfiguration dans le cluster :

    $ oc get mutatingwebhookconfigurations
  2. Examinez le fichier YAML de chaque site kind: MutatingWebhookConfiguration pour vous assurer qu'aucune de ses règles ne bloque la création des objets qui posent problème. Pour plus d'informations, voir la documentation officielle de Kuberbetes.
  3. Vérifiez que tout spec.version dans type: Configuration.appconnect.ibm.com/v1beta1 utilisé au moment de la sauvegarde est pris en charge par l'opérateur installé.

4.5.6. Problèmes d'installation

Vous pouvez rencontrer des problèmes dus à l'utilisation de répertoires non valides ou d'informations d'identification incorrectes lors de l'installation de l'application de protection des données.

4.5.6.1. Le stockage de sauvegarde contient des répertoires non valides

Le journal du pod Velero affiche le message d'erreur Backup storage contains invalid top-level directories.

Cause

Le stockage d'objets contient des répertoires de premier niveau qui ne sont pas des répertoires Velero.

Solution

Si le stockage d'objets n'est pas dédié à Velero, vous devez spécifier un préfixe pour le seau en définissant le paramètre spec.backupLocations.velero.objectStorage.prefix dans le manifeste DataProtectionApplication.

4.5.6.2. Informations d'identification AWS incorrectes

Le journal du pod oadp-aws-registry affiche le message d'erreur, InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our records.

Le journal du pod Velero affiche le message d'erreur NoCredentialProviders: no valid providers in chain.

Cause

Le fichier credentials-velero utilisé pour créer l'objet Secret est mal formaté.

Solution

Assurez-vous que le fichier credentials-velero est correctement formaté, comme dans l'exemple suivant :

Exemple de fichier credentials-velero

[default] 1
aws_access_key_id=AKIAIOSFODNN7EXAMPLE 2
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

1
Profil par défaut AWS.
2
Ne mettez pas les valeurs entre guillemets (", ').

4.5.7. Problèmes de sauvegarde et de restauration de la CR

Vous pouvez rencontrer ces problèmes courants avec les ressources personnalisées (CR) Backup et Restore.

4.5.7.1. Le CR de sauvegarde ne peut pas récupérer le volume

Le CR Backup affiche le message d'erreur InvalidVolume.NotFound: The volume ‘vol-xxxx’ does not exist.

Cause

Le volume persistant (PV) et les emplacements des instantanés se trouvent dans des régions différentes.

Solution

  1. Modifiez la valeur de la clé spec.snapshotLocations.velero.config.region dans le manifeste DataProtectionApplication afin que l'emplacement de l'instantané se trouve dans la même région que le PV.
  2. Créez un nouveau CR Backup.

4.5.7.2. L'état de la CR de sauvegarde reste en cours

Le statut d'une CR Backup reste dans la phase InProgress et ne s'achève pas.

Cause

Si une sauvegarde est interrompue, elle ne peut pas être reprise.

Solution

  1. Récupérer les détails du CR Backup:

    $ oc -n {namespace} exec deployment/velero -c velero -- ./velero \
      backup describe <backup>
  2. Supprimer le CR Backup:

    oc delete backup <backup> -n openshift-adp

    Il n'est pas nécessaire de nettoyer l'emplacement de sauvegarde car un CR Backup en cours n'a pas téléchargé de fichiers vers le stockage d'objets.

  3. Créez un nouveau CR Backup.

4.5.7.3. Le statut de la CR de sauvegarde reste en PartiallyFailed (échec partiel)

L'état d'un CR Backup sans Restic en cours d'utilisation reste dans la phase PartiallyFailed et ne se termine pas. Un instantané du PVC affilié n'est pas créé.

Cause

Si la sauvegarde est créée sur la base de la classe d'instantané CSI, mais que l'étiquette est manquante, le plugin d'instantané CSI ne parvient pas à créer un instantané. En conséquence, le pod Velero enregistre une erreur similaire à la suivante :

time="2023-02-17T16:33:13Z" level=error msg="Error backing up item" backup=openshift-adp/user1-backup-check5 error="error executing custom action (groupResource=persistentvolumeclaims, namespace=busy1, name=pvc1-user1): rpc error: code = Unknown desc = failed to get volumesnapshotclass for storageclass ocs-storagecluster-ceph-rbd: failed to get volumesnapshotclass for provisioner openshift-storage.rbd.csi.ceph.com, ensure that the desired volumesnapshot class has the velero.io/csi-volumesnapshot-class label" logSource="/remote-source/velero/app/pkg/backup/backup.go:417" name=busybox-79799557b5-vprq

Solution

  1. Supprimer le CR Backup:

    oc delete backup <backup> -n openshift-adp
  2. Si nécessaire, nettoyez les données stockées sur le site BackupStorageLocation pour libérer de l'espace.
  3. Appliquez l'étiquette velero.io/csi-volumesnapshot-class=true à l'objet VolumeSnapshotClass:

    oc label volumesnapshotclass/<snapclass_name> velero.io/csi-volumesnapshot-class=true
  4. Créez un nouveau CR Backup.

4.5.8. Questions relatives à l'agriculture

Vous pouvez rencontrer ces problèmes lorsque vous sauvegardez des applications avec Restic.

4.5.8.1. Erreur d'autorisation de restic pour les volumes de données NFS avec l'option root_squash activée

Le journal du pod Restic affiche le message d'erreur : controller=pod-volume-backup error="fork/exec/usr/bin/restic: permission denied".

Cause

Si vos volumes de données NFS ont activé root_squash, Restic est mappé à nfsnobody et n'a pas l'autorisation de créer des sauvegardes.

Solution

Vous pouvez résoudre ce problème en créant un groupe supplémentaire pour Restic et en ajoutant l'identifiant du groupe au manifeste DataProtectionApplication:

  1. Créez un groupe supplémentaire pour Restic sur le volume de données NFS.
  2. Activez le bit setgid sur les répertoires NFS pour que la propriété du groupe soit héritée.
  3. Ajoutez le paramètre spec.configuration.restic.supplementalGroups et l'identifiant du groupe au manifeste DataProtectionApplication, comme dans l'exemple suivant :

    spec:
      configuration:
        restic:
          enable: true
          supplementalGroups:
          - <group_id> 1
    1
    Indiquez l'ID du groupe supplémentaire.
  4. Attendez que les pods Restic redémarrent pour que les changements soient appliqués.

4.5.8.2. Restic Backup CR ne peut pas être recréé après que le seau a été vidé

Si vous créez un CR Restic Backup pour un espace de noms, videz le seau de stockage d'objets, puis recréez le CR Backup pour le même espace de noms, le CR Backup recréé échoue.

Le journal du pod velero affiche le message d'erreur suivant : stderr=Fatal: unable to open config file: Stat: The specified key does not exist.\nIs there a repository at the following location?.

Cause

Velero ne recrée pas ou ne met pas à jour le référentiel Restic à partir du manifeste ResticRepository si les répertoires Restic sont supprimés du stockage d'objets. Voir le problème 4421 de Velero pour plus d'informations.

Solution

  • Supprimez le référentiel Restic correspondant de l'espace de noms en exécutant la commande suivante :

    oc delete resticrepository openshift-adp <name_of_the_restic_repository>

    Dans le journal d'erreurs suivant, mysql-persistent est le dépôt Restic problématique. Le nom du dépôt apparaît en italique pour plus de clarté.

     time="2021-12-29T18:29:14Z" level=info msg="1 errors
     encountered backup up item" backup=velero/backup65
     logSource="pkg/backup/backup.go:431" name=mysql-7d99fc949-qbkds
     time="2021-12-29T18:29:14Z" level=error msg="Error backing up item"
     backup=velero/backup65 error="pod volume backup failed: error running
     restic backup, stderr=Fatal: unable to open config file: Stat: The
     specified key does not exist.\nIs there a repository at the following
     location?\ns3:http://minio-minio.apps.mayap-oadp-
     veleo-1234.qe.devcluster.openshift.com/mayapvelerooadp2/velero1/
     restic/mysql-persistent\n: exit status 1" error.file="/remote-source/
     src/github.com/vmware-tanzu/velero/pkg/restic/backupper.go:184"
     error.function="github.com/vmware-tanzu/velero/
     pkg/restic.(*backupper).BackupPodVolumes"
     logSource="pkg/backup/backup.go:435" name=mysql-7d99fc949-qbkds

4.5.9. Utilisation de l'outil de collecte obligatoire

Vous pouvez collecter des journaux, des mesures et des informations sur les ressources personnalisées de l'OADP à l'aide de l'outil must-gather.

Les données du site must-gather doivent être jointes à tous les dossiers clients.

Conditions préalables

  • Vous devez être connecté au cluster OpenShift Container Platform en tant qu'utilisateur ayant le rôle cluster-admin.
  • Vous devez avoir installé OpenShift CLI (oc).

Procédure

  1. Naviguez jusqu'au répertoire dans lequel vous souhaitez stocker les données must-gather.
  2. Exécutez la commande oc adm must-gather pour l'une des options de collecte de données suivantes :

    $ oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel8:v1.1

    Les données sont sauvegardées en tant que must-gather/must-gather.tar.gz. Vous pouvez télécharger ce fichier vers un dossier d'assistance sur le portail client de Red Hat.

    $ oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel8:v1.1 \
      -- /usr/bin/gather_metrics_dump

    Cette opération peut prendre beaucoup de temps. Les données sont enregistrées sous must-gather/metrics/prom_data.tar.gz.

Visualisation des données de métrologie avec la console Prometheus

Vous pouvez consulter les données de mesure dans la console Prometheus.

Procédure

  1. Décompressez le fichier prom_data.tar.gz:

    $ tar -xvzf must-gather/metrics/prom_data.tar.gz
  2. Créer une instance locale de Prometheus :

    $ make prometheus-run

    La commande affiche l'URL de Prometheus.

    Sortie

    Started Prometheus on http://localhost:9090

  3. Lancez un navigateur web et accédez à l'URL pour visualiser les données à l'aide de la console web Prometheus.
  4. Après avoir consulté les données, supprimez l'instance Prometheus et les données :

    $ make prometheus-cleanup
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.