28.4. Dépannage de la configuration du réseau de nœuds


Si la configuration du réseau de nœuds rencontre un problème, la politique est automatiquement annulée et les actes signalent un échec. Il s'agit notamment des problèmes suivants

  • La configuration n'est pas appliquée sur l'hôte.
  • L'hôte perd la connexion à la passerelle par défaut.
  • L'hôte perd la connexion avec le serveur API.

28.4.1. Dépannage d'une configuration incorrecte de la politique de configuration du réseau de nœuds

Vous pouvez appliquer des modifications à la configuration du réseau de nœuds à l'ensemble de votre cluster en appliquant une stratégie de configuration du réseau de nœuds. Si vous appliquez une configuration incorrecte, vous pouvez utiliser l'exemple suivant pour dépanner et corriger la stratégie de réseau de nœuds défaillante.

Dans cet exemple, une stratégie de pont Linux est appliquée à un exemple de cluster comprenant trois nœuds de plan de contrôle et trois nœuds de calcul. La stratégie n'est pas appliquée car elle fait référence à une interface incorrecte. Pour trouver l'erreur, examinez les ressources NMState disponibles. Vous pouvez ensuite mettre à jour la stratégie avec la configuration correcte.

Procédure

  1. Créez une politique et appliquez-la à votre cluster. L'exemple suivant crée un pont simple sur l'interface ens01:

    apiVersion: nmstate.io/v1
    kind: NodeNetworkConfigurationPolicy
    metadata:
      name: ens01-bridge-testfail
    spec:
      desiredState:
        interfaces:
          - name: br1
            description: Linux bridge with the wrong port
            type: linux-bridge
            state: up
            ipv4:
              dhcp: true
              enabled: true
            bridge:
              options:
                stp:
                  enabled: false
              port:
                - name: ens01
    $ oc apply -f ens01-bridge-testfail.yaml

    Exemple de sortie

    nodenetworkconfigurationpolicy.nmstate.io/ens01-bridge-testfail created

  2. Vérifiez l'état de la politique en exécutant la commande suivante :

    $ oc get nncp

    Le résultat montre que la politique a échoué :

    Exemple de sortie

    NAME                    STATUS
    ens01-bridge-testfail   FailedToConfigure

    Toutefois, l'état de la politique n'indique pas à lui seul si elle a échoué sur tous les nœuds ou sur un sous-ensemble de nœuds.

  3. Répertoriez les éléments de configuration du réseau des nœuds pour voir si la stratégie a réussi sur l'un d'entre eux. Si la stratégie n'a échoué que pour un sous-ensemble de nœuds, cela signifie que le problème est lié à une configuration de nœud spécifique. Si la stratégie a échoué sur tous les nœuds, cela suggère que le problème est lié à la stratégie.

    $ oc get nnce

    Le résultat montre que la politique a échoué sur tous les nœuds :

    Exemple de sortie

    NAME                                         STATUS
    control-plane-1.ens01-bridge-testfail        FailedToConfigure
    control-plane-2.ens01-bridge-testfail        FailedToConfigure
    control-plane-3.ens01-bridge-testfail        FailedToConfigure
    compute-1.ens01-bridge-testfail              FailedToConfigure
    compute-2.ens01-bridge-testfail              FailedToConfigure
    compute-3.ens01-bridge-testfail              FailedToConfigure

  4. Affichez l'une des exécutions qui a échoué et regardez la traceback. La commande suivante utilise l'outil de sortie jsonpath pour filtrer la sortie :

    $ oc get nnce compute-1.ens01-bridge-testfail -o jsonpath='{.status.conditions[?(@.type=="Failing")].message}'

    Cette commande renvoie une large traceback qui a été éditée pour des raisons de concision :

    Exemple de sortie

    error reconciling NodeNetworkConfigurationPolicy at desired state apply: , failed to execute nmstatectl set --no-commit --timeout 480: 'exit status 1' ''
    ...
    libnmstate.error.NmstateVerificationError:
    desired
    =======
    ---
    name: br1
    type: linux-bridge
    state: up
    bridge:
      options:
        group-forward-mask: 0
        mac-ageing-time: 300
        multicast-snooping: true
        stp:
          enabled: false
          forward-delay: 15
          hello-time: 2
          max-age: 20
          priority: 32768
      port:
      - name: ens01
    description: Linux bridge with the wrong port
    ipv4:
      address: []
      auto-dns: true
      auto-gateway: true
      auto-routes: true
      dhcp: true
      enabled: true
    ipv6:
      enabled: false
    mac-address: 01-23-45-67-89-AB
    mtu: 1500
    
    current
    =======
    ---
    name: br1
    type: linux-bridge
    state: up
    bridge:
      options:
        group-forward-mask: 0
        mac-ageing-time: 300
        multicast-snooping: true
        stp:
          enabled: false
          forward-delay: 15
          hello-time: 2
          max-age: 20
          priority: 32768
      port: []
    description: Linux bridge with the wrong port
    ipv4:
      address: []
      auto-dns: true
      auto-gateway: true
      auto-routes: true
      dhcp: true
      enabled: true
    ipv6:
      enabled: false
    mac-address: 01-23-45-67-89-AB
    mtu: 1500
    
    difference
    ==========
    --- desired
    +++ current
    @@ -13,8 +13,7 @@
           hello-time: 2
           max-age: 20
           priority: 32768
    -  port:
    -  - name: ens01
    +  port: []
     description: Linux bridge with the wrong port
     ipv4:
       address: []
      line 651, in _assert_interfaces_equal\n    current_state.interfaces[ifname],\nlibnmstate.error.NmstateVerificationError:

    Le site NmstateVerificationError répertorie la configuration de la politique desired, la configuration current de la politique sur le nœud, et le site difference met en évidence les paramètres qui ne correspondent pas. Dans cet exemple, le port est inclus dans le difference, ce qui suggère que le problème vient de la configuration du port dans la politique.

  5. Pour vous assurer que la stratégie est correctement configurée, affichez la configuration du réseau pour un ou tous les nœuds en demandant l'objet NodeNetworkState. La commande suivante renvoie la configuration du réseau pour le nœud control-plane-1:

    $ oc get nns control-plane-1 -o yaml

    La sortie montre que le nom de l'interface sur les nœuds est ens1 mais que la stratégie qui a échoué utilise incorrectement ens01:

    Exemple de sortie

       - ipv4:
    ...
          name: ens1
          state: up
          type: ethernet

  6. Corrigez l'erreur en modifiant la politique existante :

    $ oc edit nncp ens01-bridge-testfail
    ...
              port:
                - name: ens1

    Enregistrez la politique pour appliquer la correction.

  7. Vérifiez l'état de la politique pour vous assurer qu'elle a été mise à jour avec succès :

    $ oc get nncp

    Exemple de sortie

    NAME                    STATUS
    ens01-bridge-testfail   SuccessfullyConfigured

La politique mise à jour est configurée avec succès sur tous les nœuds du cluster.

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.