5.10. Collecte d'une trace réseau à partir d'un nœud ou d'un conteneur OpenShift Container Platform


Lors de l'investigation de problèmes potentiels liés au réseau dans OpenShift Container Platform, le support Red Hat peut demander une trace de paquet réseau à partir d'un nœud de cluster OpenShift Container Platform spécifique ou à partir d'un conteneur spécifique. La méthode recommandée pour capturer une trace de réseau dans OpenShift Container Platform est d'utiliser un pod de débogage.

Conditions préalables

  • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
  • Vous avez installé l'OpenShift CLI (oc).
  • Vous avez un abonnement standard ou premium Red Hat.
  • Vous disposez d'un compte Red Hat Customer Portal.
  • Vous avez un numéro d'identification de dossier d'assistance Red Hat existant.
  • Vous avez un accès SSH à vos hôtes.

Procédure

  1. Obtenir une liste des nœuds de la grappe :

    $ oc get nodes
  2. Entrez dans une session de débogage sur le nœud cible. Cette étape instancie un pod de débogage appelé <node_name>-debug:

    $ oc debug node/my-cluster-node
  3. Définissez /host comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans /host au sein du pod. En changeant le répertoire racine en /host, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :

    # chroot /host
    Note

    Les nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérations oc seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisant ssh core@<node>.<cluster_name>.<base_domain> à la place.

  4. Dans la console de l'environnement chroot, obtenez les noms des interfaces du nœud :

    # ip ad
  5. Démarrer un conteneur toolbox, qui contient les binaires et les plugins nécessaires à l'exécution de sosreport:

    # toolbox
    Note

    Si un pod toolbox est déjà en cours d'exécution, la commande toolbox produit 'toolbox-' already exists. Trying to start…​. Pour éviter les problèmes liés à 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.

  6. Lancez une session tcpdump sur le nœud du cluster et redirigez la sortie vers un fichier de capture. Cet exemple utilise ens5 comme nom d'interface :

    $ tcpdump -nn -s 0 -i ens5 -w /host/var/tmp/my-cluster-node_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap  1
    1
    Le chemin d'accès au fichier de capture tcpdump se trouve en dehors de l'environnement chroot car le conteneur de la boîte à outils monte le répertoire racine de l'hôte à l'adresse /host.
  7. Si une capture tcpdump est requise pour un conteneur spécifique sur le nœud, procédez comme suit.

    1. Déterminez l'ID du conteneur cible. La commande chroot host précède la commande crictl dans cette étape car le conteneur toolbox monte le répertoire racine de l'hôte à l'adresse /host:

      # chroot /host crictl ps
    2. Déterminer l'ID du processus du conteneur. Dans cet exemple, l'ID du conteneur est a7fe32346b120:

      # chroot /host crictl inspect --output yaml a7fe32346b120 | grep 'pid' | awk '{print $2}'
    3. Lancez une session tcpdump sur le conteneur et redirigez 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 dans l'espace de noms d'un processus cible et exécute une commande dans son espace de noms. Comme 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.pcap  1
      1
      Le chemin d'accès au fichier de capture tcpdump se trouve en dehors de l'environnement chroot car le conteneur de la boîte à outils monte le répertoire racine de l'hôte à l'adresse /host.
  8. Fournissez le fichier de capture tcpdump à l'assistance technique de Red Hat pour analyse, en utilisant l'une des méthodes suivantes.

    • Téléchargez le fichier vers un cas d'assistance Red Hat existant directement à partir d'un cluster OpenShift Container Platform.

      1. Depuis le conteneur de la boîte à outils, exécutez redhat-support-tool pour joindre le fichier directement à un cas d'assistance Red Hat existant. Cet exemple utilise l'ID de cas d'assistance 01234567:

        # redhat-support-tool addattachment -c 01234567 /host/var/tmp/my-tcpdump-capture-file.pcap 1
        1
        Le conteneur Toolbox monte le répertoire racine de l'hôte à l'adresse /host. Faites référence au chemin absolu du répertoire racine du conteneur Toolbox, y compris /host/, lorsque vous spécifiez les fichiers à télécharger par le biais de la commande redhat-support-tool.
    • Téléchargez le fichier vers un dossier d'assistance Red Hat existant.

      1. 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 oc debug 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 1
        1
        Le conteneur de débogage monte le répertoire racine de l'hôte à l'adresse /host. Faites référence au chemin absolu du répertoire racine du conteneur de débogage, y compris /host, lorsque vous spécifiez les fichiers cibles pour la concaténation.
        Note

        Les nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. Le transfert d'un fichier de capture tcpdump à partir d'un nœud de cluster en utilisant scp n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérations oc seront impactées. Dans de telles situations, il est possible de copier un fichier de capture tcpdump à partir d'un nœud en exécutant scp core@<node>.<cluster_name>.<base_domain>:<file_path> <local_path>.

      2. Accédez à un dossier d'assistance existant sur https://access.redhat.com/support/cases/.
      3. Sélectionnez Attach files et suivez les instructions pour télécharger le fichier.
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.