12.3. Journaux et outils de débogage
Cette section décrit les journaux et outils de débogage que vous pouvez utiliser dans le cadre de la résolution des problèmes.
12.3.1. Affichage des ressources du plan de migration Copier lienLien copié sur presse-papiers!
Vous pouvez afficher les ressources du plan de migration pour surveiller une migration en cours ou pour résoudre un échec de migration en utilisant la console Web MTC et l’interface de ligne de commande (CLI).
Procédure
- Dans la console Web MTC, cliquez sur Migration Plans.
- Cliquez sur le numéro Migrations en regard d’un plan de migration pour afficher la page Migrations.
- Cliquez sur une migration pour en afficher les détails (Migration details).
Développez Migration resources pour afficher les ressources de migration et leur état dans une arborescence.
NotePour résoudre un échec de migration, commencez par une ressource de haut niveau qui a échoué, puis descendez dans l’arborescence vers les ressources de niveau inférieur.
Cliquez sur le menu Options
à côté d'une ressource et sélectionnez l'une des options suivantes :
La commande Copy
oc describecopie la commande dans votre presse-papiers.Connectez-vous au cluster concerné, puis exécutez la commande.
Les conditions et les événements de la ressource sont affichés au format YAML.
La commande Copy
oc logscopie la commande dans votre presse-papiers.Connectez-vous au cluster concerné, puis exécutez la commande.
Si la ressource prend en charge le filtrage des journaux, un journal filtré est affiché.
View JSON affiche les données de la ressource au format JSON dans un navigateur Web.
Les données sont les mêmes que celles de la sortie de la commande
oc get <resource>.
12.3.2. Consultation d’un journal de plan de migration Copier lienLien copié sur presse-papiers!
Vous pouvez consulter un journal agrégé pour un plan de migration. Utilisez la console Web MTC pour copier une commande dans le presse-papiers, puis exécutez la commande à partir de l’interface de ligne de commande (CLI).
La commande affiche les journaux filtrés des pods suivants :
-
Migration Controller -
Velero -
Restic -
Rsync -
Stunnel -
Registry
Procédure
- Dans la console Web MTC, cliquez sur Migration Plans.
- Cliquez sur le numéro Migrations en regard d’un plan de migration.
- Cliquez sur View logs.
-
Cliquez sur l’icône Copier pour copier la commande
oc logsdans votre presse-papiers. Connectez-vous au cluster concerné et saisissez la commande dans la CLI.
Le journal agrégé relatif au plan de migration est affiché.
12.3.3. Utilisation du lecteur de journaux de migration Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser le lecteur de journaux de migration pour afficher une vue unique et filtrée de l’ensemble des journaux de migration.
Procédure
Procurez-vous le pod
mig-log-reader:oc -n openshift-migration get pods | grep log
$ oc -n openshift-migration get pods | grep logCopy to Clipboard Copied! Toggle word wrap Toggle overflow Saisissez la commande suivante pour afficher un seul journal de migration :
oc -n openshift-migration logs -f <mig-log-reader-pod> -c color
$ oc -n openshift-migration logs -f <mig-log-reader-pod> -c color1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- L’option
-c plainaffiche le journal sans couleurs.
12.3.4. Accès aux métriques de performance Copier lienLien copié sur presse-papiers!
La ressource personnalisée (CR) MigrationController enregistre les métriques et les transfère dans le stockage de surveillance sur le cluster. Vous pouvez interroger les métriques en utilisant le langage PromQL (Prometheus Query Language) pour diagnostiquer les problèmes de performance de la migration. Toutes les métriques sont réinitialisées au redémarrage du pod Migration Controller.
Vous pouvez accéder aux métriques de performance et exécuter des requêtes en utilisant la console Web OpenShift Container Platform.
Procédure
-
Dans la console Web OpenShift Container Platform, cliquez sur Observe
Metrics. Saisissez une requête PromQL, sélectionnez une fenêtre temporelle à afficher, puis cliquez sur Run Queries.
Si votre navigateur Web n’affiche pas tous les résultats, utilisez la console Prometheus.
12.3.4.1. Métriques fournies Copier lienLien copié sur presse-papiers!
La ressource personnalisée (CR) MigrationController fournit des métriques pour le compte CR MigMigration et pour ses demandes API.
12.3.4.1.1. cam_app_workload_migrations Copier lienLien copié sur presse-papiers!
Cette métrique est un décompte des CR MigMigration au fil du temps. Il est utile de la consulter en même temps que les métriques mtc_client_request_count et mtc_client_request_elapsed pour assembler les informations sur les demandes API aux changements d’état de migration. Cette métrique est incluse dans Telemetry.
| Nom de l’étiquette utilisable dans une requête | Exemples de valeurs d’étiquette | Description de l’étiquette |
|---|---|---|
| status |
|
État de la CR |
| type | stage, final |
Type de la CR |
12.3.4.1.2. mtc_client_request_count Copier lienLien copié sur presse-papiers!
Cette métrique est un nombre cumulé des demandes API Kubernetes émises par MigrationController. Elle n’est pas incluse dans Telemetry.
| Nom de l’étiquette utilisable dans une requête | Exemples de valeurs d’étiquette | Description de l’étiquette |
|---|---|---|
| cluster |
| Cluster sur lequel la demande a été émise |
| component |
| API du sous-contrôleur qui a émis la demande |
| function |
| Fonction à partir de laquelle la demande a été émise |
| kind |
| Type Kubernetes pour lequel la demande a été émise |
12.3.4.1.3. mtc_client_request_elapsed Copier lienLien copié sur presse-papiers!
Cette métrique est une latence cumulée, en millisecondes, des demandes API Kubernetes émises par MigrationController. Elle n’est pas incluse dans Telemetry.
| Nom de l’étiquette utilisable dans une requête | Exemples de valeurs d’étiquette | Description de l’étiquette |
|---|---|---|
| cluster |
| Cluster sur lequel la demande a été émise |
| component |
| API du sous-contrôleur qui a émis la demande |
| function |
| Fonction à partir de laquelle la demande a été émise |
| kind |
| Ressource Kubernetes pour laquelle la demande a été émise |
12.3.4.1.4. Requêtes utiles Copier lienLien copié sur presse-papiers!
Le tableau ci-dessous présente quelques requêtes utiles qui peuvent être utilisées pour surveiller les performances.
| Requête | Description |
|---|---|
|
| Nombre de demandes API émises, triées par type |
|
| Nombre total de demandes API émises |
|
| Latence des demandes API, classées par type |
|
| Latence totale des demandes API |
|
| Latence moyenne des demandes API |
|
| Latence moyenne des demandes API, triées par type |
|
| Nombre de migrations en cours, multiplié par 100 pour une visualisation plus facile parallèlement au nombre de demandes |
12.3.5. Utilisation de l’outil must-gather Copier lienLien copié sur presse-papiers!
Vous pouvez collecter des journaux, des métriques et des informations sur les ressources MTC personnalisées en utilisant l’outil must-gather.
Les données must-gather doivent être jointes à tous les dossiers client.
Vous pouvez collecter des données sur une période d’une heure ou de 24 heures et les visualiser à l’aide de la console Prometheus.
Conditions préalables
-
Vous devez être connecté au cluster OpenShift Container Platform en tant qu’utilisateur avec le rôle
cluster-admin. -
Il faut que la CLI OpenShift (
oc) soit installée.
Procédure
-
Accédez au répertoire dans lequel vous souhaitez stocker les données
must-gather. Exécutez la commande
oc adm must-gatherpour l’une des options de collecte de données suivantes :Pour collecter les données relatives à l’heure écoulée :
oc adm must-gather --image=registry.redhat.io/rhmtc/openshift-migration-must-gather-rhel8:v1.7
$ oc adm must-gather --image=registry.redhat.io/rhmtc/openshift-migration-must-gather-rhel8:v1.7Copy to Clipboard Copied! Toggle word wrap Toggle overflow Les données sont enregistrées en tant que
must-gather/must-gather.tar.gz. Vous pouvez envoyer ce fichier dans un dossier d’assistance sur le Portail Client de Red Hat.Pour collecter les données des dernières 24 heures :
oc adm must-gather --image=registry.redhat.io/rhmtc/openshift-migration-must-gather-rhel8:v1.7 \ -- /usr/bin/gather_metrics_dump
$ oc adm must-gather --image=registry.redhat.io/rhmtc/openshift-migration-must-gather-rhel8:v1.7 \ -- /usr/bin/gather_metrics_dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cette opération peut prendre beaucoup de temps. Les données sont enregistrées sous le nom
must-gather/metrics/prom_data.tar.gz.
Visualisation des données de métrique à l’aide de la console Prometheus
Vous pouvez visualiser les données de métrique à l’aide de la console Prometheus.
Procédure
Décompressez le fichier
prom_data.tar.gz:tar -xvzf must-gather/metrics/prom_data.tar.gz
$ tar -xvzf must-gather/metrics/prom_data.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow Créez une instance Prometheus locale :
make prometheus-run
$ make prometheus-runCopy to Clipboard Copied! Toggle word wrap Toggle overflow La commande produit l’URL Prometheus.
Sortie
Started Prometheus on http://localhost:9090
Started Prometheus on http://localhost:9090Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Démarrez un navigateur Web et accédez à l’URL pour afficher les données à l’aide de la console Web Prometheus.
Après avoir consulté les données, supprimez l’instance Prometheus, ainsi que les données :
make prometheus-cleanup
$ make prometheus-cleanupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
12.3.6. Débogage des ressources Velero avec l’outil CLI Velero Copier lienLien copié sur presse-papiers!
Vous pouvez déboguer les ressources personnalisées (CR) Backup et Restore, et récupérer les journaux avec l’outil CLI Velero.
L’outil CLI Velero fournit des informations plus détaillées que l’outil CLI OpenShift.
Syntaxe
Utilisez la commande oc exec pour exécuter une commande CLI Velero :
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> <command> <cr_name>
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
<backup_restore_cr> <command> <cr_name>
Exemple :
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
Option d’aide
Utilisez l’option velero --help pour répertorier toutes les commandes CLI de Velero :
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ --help
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
--help
Commande describe
Utilisez la commande velero describe pour récupérer un résumé des avertissements et des erreurs associés à une ressource personnalisée (CR) Backup ou Restore.
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> describe <cr_name>
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
<backup_restore_cr> describe <cr_name>
Exemple :
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
Commande logs
Utilisez la commande velero logs pour récupérer les journaux d’une ressource personnalisée (CR) Backup ou Restore.
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> logs <cr_name>
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
<backup_restore_cr> logs <cr_name>
Exemple :
oc -n openshift-migration exec deployment/velero -c velero -- ./velero \ restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf
$ oc -n openshift-migration exec deployment/velero -c velero -- ./velero \
restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf
12.3.7. Résolution d’un échec de migration partiel Copier lienLien copié sur presse-papiers!
Vous pouvez déboguer un message d’avertissement concernant un échec de migration partiel en utilisant la CLI Velero afin d’examiner les journaux de ressources personnalisées (CR) Restore.
Un échec partiel se produit lorsque Velero rencontre un problème qui n’entraîne pas l’échec de la migration. Par exemple, s’il manque une définition de ressource personnalisée (CRD) ou s’il y a une différence entre les versions de CRD sur les clusters source et cible, la migration se termine, mais la ressource personnalisée n’est pas créée sur le cluster cible.
Velero enregistre le problème comme un échec partiel et traite ensuite le reste des objets dans la ressource personnalisée Backup.
Procédure
Vérifiez l’état d’une CR
MigMigration:oc get migmigration <migmigration> -o yaml
$ oc get migmigration <migmigration> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez l’état de la CR
Restoreen utilisant la commande Velerodescribe:$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \ restore describe <restore>$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \ restore describe <restore>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez les journaux de la CR
Restoreen utilisant la commande Velerologs:$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \ restore logs <restore>$ oc -n {namespace} exec deployment/velero -c velero -- ./velero \ restore logs <restore>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
time="2021-01-26T20:48:37Z" level=info msg="Attempting to restore migration-example: migration-example" logSource="pkg/restore/restore.go:1107" restore=openshift-migration/ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf time="2021-01-26T20:48:37Z" level=info msg="error restoring migration-example: the server could not find the requested resource" logSource="pkg/restore/restore.go:1170" restore=openshift-migration/ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf
time="2021-01-26T20:48:37Z" level=info msg="Attempting to restore migration-example: migration-example" logSource="pkg/restore/restore.go:1107" restore=openshift-migration/ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf time="2021-01-26T20:48:37Z" level=info msg="error restoring migration-example: the server could not find the requested resource" logSource="pkg/restore/restore.go:1170" restore=openshift-migration/ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbfCopy to Clipboard Copied! Toggle word wrap Toggle overflow Le message d’erreur du journal de la CR
Restore(the server could not find the requested resource) indique la cause de l’échec partiel de la migration.
12.3.8. Utilisation des ressources MTC personnalisées pour la résolution des problèmes Copier lienLien copié sur presse-papiers!
Vous pouvez vérifier les ressources personnalisées (CR) MTC ( Migration Toolkit for Containers) suivantes pour résoudre l’échec d’une migration :
-
MigCluster -
MigStorage -
MigPlan BackupStorageLocationLa CR
BackupStorageLocationcontient une étiquettemigrationcontrollerpermettant d’identifier l’instance MTC qui a créé la CR :labels: migrationcontroller: ebe13bee-c803-47d0-a9e9-83f380328b93labels: migrationcontroller: ebe13bee-c803-47d0-a9e9-83f380328b93Copy to Clipboard Copied! Toggle word wrap Toggle overflow VolumeSnapshotLocationLa CR
VolumeSnapshotLocationcontient une étiquettemigrationcontrollerpermettant d’identifier l’instance MTC qui a créé la CR :labels: migrationcontroller: ebe13bee-c803-47d0-a9e9-83f380328b93labels: migrationcontroller: ebe13bee-c803-47d0-a9e9-83f380328b93Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
MigMigration BackupMTC définit la stratégie de récupération des volumes persistants (PV) migrés sur
Retainsur le cluster cible. La CRBackupcontient une annotationopenshift.io/orig-reclaim-policyqui indique la stratégie de récupération d’origine. Vous pouvez restaurer manuellement la stratégie de récupération des PV migrés.-
Restore
Procédure
Répertoriez les CR
MigMigrationdans l’espace de nommageopenshift-migration:oc get migmigration -n openshift-migration
$ oc get migmigration -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME AGE 88435fe0-c9f8-11e9-85e6-5d593ce65e10 6m42s
NAME AGE 88435fe0-c9f8-11e9-85e6-5d593ce65e10 6m42sCopy to Clipboard Copied! Toggle word wrap Toggle overflow Inspectez la CR
MigMigration:oc describe migmigration 88435fe0-c9f8-11e9-85e6-5d593ce65e10 -n openshift-migration
$ oc describe migmigration 88435fe0-c9f8-11e9-85e6-5d593ce65e10 -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow La sortie est semblable aux exemples suivants.
Exemple de sortie MigMigration
Exemple de sortie de la CR backup Velero n°2 qui décrit les données de volume persistant (PV)
Exemple de sortie de la CR restore Velero n°2 qui décrit les ressources Kubernetes