5.6. Collecte d’une trace réseau à partir d’un nœud ou conteneur dédié OpenShift
Lors de l’enquête sur les problèmes potentiels d’OpenShift dédiés au réseau, Red Hat Support peut demander une trace de paquet réseau à partir d’un nœud de cluster dédié OpenShift spécifique ou à partir d’un conteneur spécifique. La méthode recommandée pour capturer une trace de réseau dans OpenShift Dedicated se fait par un pod de débogage.
Conditions préalables
En tant qu’utilisateur, vous avez accès au cluster avec le rôle cluster-admin.
NoteDans les déploiements dédiés à OpenShift, les clients qui n’utilisent pas le modèle Customer Cloud Subscription (CCS) ne peuvent pas utiliser la commande de débogage oc car il nécessite des privilèges d’administration cluster.
- L’OpenShift CLI (oc) a été installé.
- Il existe une pièce d’identité de l’affaire Red Hat Support.
Procédure
D’obtenir une liste de nœuds de cluster:
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Entrez dans une session de débogage sur le nœud cible. Cette étape instancie un pod debug appelé <node_name>-debug:
oc debug node/my-cluster-node
$ oc debug node/my-cluster-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez /host comme le répertoire racine dans le shell debug. Le pod debug monte le système de fichiers racine de l’hôte dans /host dans le pod. En changeant le répertoire root en /host, vous pouvez exécuter des binaires contenus dans les chemins exécutables de l’hôte:
chroot /host
# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow À partir de la console d’environnement chroot, obtenez les noms de l’interface du nœud:
ip ad
# ip ad
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrez un conteneur de boîte à outils, qui comprend les binaires et les plugins requis pour exécuter sosreport:
toolbox
# toolbox
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLorsqu’un pod de boîte à outils existant est déjà en cours d’exécution, la commande toolbox affiche déjà «toolbox-». Essayer de commencer… Afin d’éviter les problèmes de tcpdump, supprimez le conteneur de boîte à outils en cours d’exécution avec podman rm toolbox- et créez un nouveau conteneur de boîte à outils.
Initier une session tcpdump sur le nœud de cluster et rediriger la sortie vers un fichier de capture. Cet exemple utilise ens5 comme nom de l’interface:
tcpdump -nn -s 0 -i ens5 -w /host/var/tmp/my-cluster-node_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap
$ tcpdump -nn -s 0 -i ens5 -w /host/var/tmp/my-cluster-node_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Le chemin du fichier de capture tcpdump est en dehors de l’environnement chroot parce que le conteneur de boîte à outils monte le répertoire racine de l’hôte à /host.
Lorsqu’une capture tcpdump est requise pour un conteneur spécifique sur le nœud, suivez ces étapes.
Déterminez l’identifiant du conteneur cible. La commande chroot host précède la commande crictl dans cette étape car le conteneur de boîte à outils monte le répertoire racine de l’hôte à /host:
chroot /host crictl ps
# chroot /host crictl ps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Déterminez l’ID de processus du conteneur. Dans cet exemple, l’ID du conteneur est a7fe32346b120:
chroot /host crictl inspect --output yaml a7fe32346b120 | grep 'pid' | awk '{print $2}'
# chroot /host crictl inspect --output yaml a7fe32346b120 | grep 'pid' | awk '{print $2}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Initier une session tcpdump sur le conteneur et rediriger la sortie vers un fichier de capture. Cet exemple utilise 49628 comme ID de processus du conteneur et ens5 comme nom d’interface. La commande nsenter entre l’espace de noms d’un processus cible et exécute une commande dans son espace de noms. parce que le processus cible dans cet exemple est l’ID de processus d’un conteneur, la commande tcpdump est exécutée dans l’espace de noms du conteneur à partir de l’hôte:
nsenter -n -t 49628 -- tcpdump -nn -i ens5 -w /host/var/tmp/my-cluster-node-my-container_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap
# nsenter -n -t 49628 -- tcpdump -nn -i ens5 -w /host/var/tmp/my-cluster-node-my-container_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Le chemin du fichier de capture tcpdump est en dehors de l’environnement chroot parce que le conteneur de boîte à outils monte le répertoire racine de l’hôte à /host.
Fournissez le fichier de capture tcpdump à Red Hat Support pour analyse, en utilisant l’une des méthodes suivantes.
Envoyez le fichier dans une affaire de support Red Hat existante.
Concaténer l’archive sosreport en exécutant la commande oc debug node/<node_name> et rediriger la sortie vers un fichier. Cette commande suppose que vous avez quitté la session de débogage précédente:
oc debug node/my-cluster-node -- bash -c 'cat /host/var/tmp/my-tcpdump-capture-file.pcap' > /tmp/my-tcpdump-capture-file.pcap
$ oc debug node/my-cluster-node -- bash -c 'cat /host/var/tmp/my-tcpdump-capture-file.pcap' > /tmp/my-tcpdump-capture-file.pcap
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Le conteneur de débogage monte le répertoire racine de l’hôte à /host. Faites référence au chemin absolu à partir du répertoire racine du conteneur de débogage, y compris /host, lorsque vous spécifiez les fichiers cibles pour la concaténation.
- Accédez à un cas d’assistance existant dans la page d’assistance client du portail client Red Hat.
- Choisissez Attach fichiers et suivez les instructions pour télécharger le fichier.