13.2. Modifier le MTU du cluster


En tant qu'administrateur de cluster, vous pouvez modifier l'unité de transmission maximale (MTU) de votre cluster. La migration est perturbatrice et les nœuds de votre cluster peuvent être temporairement indisponibles pendant la mise à jour du MTU.

La procédure suivante décrit comment modifier le MTU de la grappe en utilisant les configurations de machine, le DHCP ou une ISO. Si vous utilisez l'approche DHCP ou ISO, vous devez vous référer aux artefacts de configuration que vous avez conservés après l'installation de votre cluster pour compléter la procédure.

Conditions préalables

  • You installed the OpenShift CLI (oc).
  • Vous êtes connecté au cluster avec un utilisateur disposant des privilèges cluster-admin.
  • Vous avez identifié le MTU cible pour votre cluster. Le MTU correct varie en fonction du plugin réseau utilisé par votre cluster :

    • OVN-Kubernetes: Le MTU du cluster doit être défini à 100 de moins que la valeur MTU matérielle la plus basse de votre cluster.
    • OpenShift SDN: Le MTU du cluster doit être défini à 50 de moins que la valeur MTU matérielle la plus basse de votre cluster.

Procédure

Pour augmenter ou diminuer le MTU pour le réseau cluster, suivez la procédure suivante.

  1. Pour obtenir le MTU actuel du réseau de la grappe, entrez la commande suivante :

    $ oc describe network.config cluster

    Exemple de sortie

    ...
    Status:
      Cluster Network:
        Cidr:               10.217.0.0/22
        Host Prefix:        23
      Cluster Network MTU:  1400
      Network Type:         OpenShiftSDN
      Service Network:
        10.217.4.0/23
    ...

  2. Préparez votre configuration pour le MTU matériel :

    • Si votre MTU matériel est spécifié avec DHCP, mettez à jour votre configuration DHCP, par exemple avec la configuration dnsmasq suivante :

      dhcp-option-force=26,<mtu>

      où :

      <mtu>
      Spécifie le MTU matériel que le serveur DHCP doit annoncer.
    • Si le MTU de votre matériel est spécifié par une ligne de commande du noyau avec PXE, mettez à jour cette configuration en conséquence.
    • Si votre MTU matériel est spécifié dans une configuration de connexion NetworkManager, effectuez les étapes suivantes. Cette approche est la valeur par défaut d'OpenShift Container Platform si vous ne spécifiez pas explicitement votre configuration réseau avec DHCP, une ligne de commande du noyau ou une autre méthode. Vos nœuds de cluster doivent tous utiliser la même configuration réseau sous-jacente pour que la procédure suivante fonctionne sans modification.

      1. Recherchez l'interface réseau principale :

        • Si vous utilisez le plugin réseau OpenShift SDN, entrez la commande suivante :

          $ oc debug node/<node_name> -- chroot /host ip route list match 0.0.0.0/0 | awk '{print $5 }'

          où :

          <node_name>
          Spécifie le nom d'un nœud dans votre cluster.
        • Si vous utilisez le plugin réseau OVN-Kubernetes, entrez la commande suivante :

          oc debug node/<node_name> -- chroot /host nmcli -g connection.interface-name c show ovs-if-phys0

          où :

          <node_name>
          Spécifie le nom d'un nœud dans votre cluster.
      2. Créez la configuration NetworkManager suivante dans le fichier <interface>-mtu.conf:

        Exemple de configuration de la connexion NetworkManager

        [connection-<interface>-mtu]
        match-device=interface-name:<interface>
        ethernet.mtu=<mtu>

        où :

        <mtu>
        Spécifie la nouvelle valeur du MTU matériel.
        <interface>
        Spécifie le nom de l'interface réseau primaire.
      3. Créez deux objets MachineConfig, l'un pour les nœuds du plan de contrôle et l'autre pour les nœuds de travail de votre cluster :

        1. Créez la configuration Butane suivante dans le fichier control-plane-interface.bu:

          variant: openshift
          version: 4.12.0
          metadata:
            name: 01-control-plane-interface
            labels:
              machineconfiguration.openshift.io/role: master
          storage:
            files:
              - path: /etc/NetworkManager/conf.d/99-<interface>-mtu.conf 1
                contents:
                  local: <interface>-mtu.conf 2
                mode: 0600
          1 1
          Spécifiez le nom de la connexion NetworkManager pour l'interface réseau primaire.
          2
          Spécifiez le nom de fichier local pour le fichier de configuration NetworkManager mis à jour à l'étape précédente.
        2. Créez la configuration Butane suivante dans le fichier worker-interface.bu:

          variant: openshift
          version: 4.12.0
          metadata:
            name: 01-worker-interface
            labels:
              machineconfiguration.openshift.io/role: worker
          storage:
            files:
              - path: /etc/NetworkManager/conf.d/99-<interface>-mtu.conf 1
                contents:
                  local: <interface>-mtu.conf 2
                mode: 0600
          1
          Spécifiez le nom de la connexion NetworkManager pour l'interface réseau primaire.
          2
          Spécifiez le nom de fichier local pour le fichier de configuration NetworkManager mis à jour à l'étape précédente.
        3. Créez des objets MachineConfig à partir des configurations Butane en exécutant la commande suivante :

          $ for manifest in control-plane-interface worker-interface; do
              butane --files-dir . $manifest.bu > $manifest.yaml
            done
  3. Pour commencer la migration du MTU, spécifiez la configuration de la migration en entrant la commande suivante. L'opérateur Machine Config effectue un redémarrage progressif des nœuds de la grappe pour préparer le changement de MTU.

    $ oc patch Network.operator.openshift.io cluster --type=merge --patch \
      '{"spec": { "migration": { "mtu": { "network": { "from": <overlay_from>, "to": <overlay_to> } , "machine": { "to" : <machine_to> } } } } }'

    où :

    <overlay_from>
    Spécifie la valeur actuelle du MTU du réseau cluster.
    <overlay_to>
    Spécifie le MTU cible pour le réseau du cluster. Cette valeur est définie par rapport à la valeur de <machine_to> et pour OVN-Kubernetes doit être 100 moins et pour OpenShift SDN doit être 50 moins.
    <machine_to>
    Spécifie le MTU pour l'interface réseau primaire sur le réseau hôte sous-jacent.

    Exemple d'augmentation du MTU du cluster

    $ oc patch Network.operator.openshift.io cluster --type=merge --patch \
      '{"spec": { "migration": { "mtu": { "network": { "from": 1400, "to": 9000 } , "machine": { "to" : 9100} } } } }'

  4. Lorsque le MCO met à jour les machines de chaque pool de configuration, il redémarre chaque nœud un par un. Vous devez attendre que tous les nœuds soient mis à jour. Vérifiez l'état du pool de configuration des machines en entrant la commande suivante :

    $ oc get mcp

    Un nœud mis à jour avec succès a le statut suivant : UPDATED=true, UPDATING=false, DEGRADED=false.

    Note

    Par défaut, le MCO met à jour une machine par pool à la fois, ce qui fait que la durée totale de la migration augmente avec la taille du cluster.

  5. Confirmer l'état de la configuration de la nouvelle machine sur les hôtes :

    1. Pour répertorier l'état de la configuration de la machine et le nom de la configuration de la machine appliquée, entrez la commande suivante :

      $ oc describe node | egrep "hostname|machineconfig"

      Exemple de sortie

      kubernetes.io/hostname=master-0
      machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b
      machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b
      machineconfiguration.openshift.io/reason:
      machineconfiguration.openshift.io/state: Done

      Vérifiez que les affirmations suivantes sont vraies :

      • La valeur du champ machineconfiguration.openshift.io/state est Done.
      • La valeur du champ machineconfiguration.openshift.io/currentConfig est égale à la valeur du champ machineconfiguration.openshift.io/desiredConfig.
    2. Pour confirmer que la configuration de la machine est correcte, entrez la commande suivante :

      oc get machineconfig <config_name> -o yaml | grep ExecStart

      <config_name> est le nom de la machine configurée dans le champ machineconfiguration.openshift.io/currentConfig.

      La configuration de la machine doit inclure la mise à jour suivante de la configuration de systemd :

      ExecStart=/usr/local/bin/mtu-migration.sh
  6. Mettre à jour la valeur MTU de l'interface réseau sous-jacente :

    • Si vous spécifiez le nouveau MTU avec une configuration de connexion NetworkManager, entrez la commande suivante. L'opérateur MachineConfig effectue automatiquement un redémarrage des nœuds de votre cluster.

      $ for manifest in control-plane-interface worker-interface; do
          oc create -f $manifest.yaml
        done
    • Si vous spécifiez le nouveau MTU avec une option de serveur DHCP ou une ligne de commande du noyau et PXE, apportez les modifications nécessaires à votre infrastructure.
  7. Lorsque le MCO met à jour les machines de chaque pool de configuration, il redémarre chaque nœud un par un. Vous devez attendre que tous les nœuds soient mis à jour. Vérifiez l'état du pool de configuration des machines en entrant la commande suivante :

    $ oc get mcp

    Un nœud mis à jour avec succès a le statut suivant : UPDATED=true, UPDATING=false, DEGRADED=false.

    Note

    Par défaut, le MCO met à jour une machine par pool à la fois, ce qui fait que la durée totale de la migration augmente avec la taille du cluster.

  8. Confirmer l'état de la configuration de la nouvelle machine sur les hôtes :

    1. Pour répertorier l'état de la configuration de la machine et le nom de la configuration de la machine appliquée, entrez la commande suivante :

      $ oc describe node | egrep "hostname|machineconfig"

      Exemple de sortie

      kubernetes.io/hostname=master-0
      machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b
      machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b
      machineconfiguration.openshift.io/reason:
      machineconfiguration.openshift.io/state: Done

      Vérifiez que les affirmations suivantes sont vraies :

      • La valeur du champ machineconfiguration.openshift.io/state est Done.
      • La valeur du champ machineconfiguration.openshift.io/currentConfig est égale à la valeur du champ machineconfiguration.openshift.io/desiredConfig.
    2. Pour confirmer que la configuration de la machine est correcte, entrez la commande suivante :

      oc get machineconfig <config_name> -o yaml | grep path :

      <config_name> est le nom de la machine configurée dans le champ machineconfiguration.openshift.io/currentConfig.

      Si la configuration de la machine est déployée avec succès, la sortie précédente contient le chemin d'accès au fichier /etc/NetworkManager/system-connections/<connection_name>.

      La configuration de la machine ne doit pas contenir la ligne ExecStart=/usr/local/bin/mtu-migration.sh.

  9. Pour finaliser la migration du MTU, entrez l'une des commandes suivantes :

    • Si vous utilisez le plugin réseau OVN-Kubernetes :

      $ oc patch Network.operator.openshift.io cluster --type=merge --patch \
        '{"spec": { "migration": null, "defaultNetwork":{ "ovnKubernetesConfig": { "mtu": <mtu> }}}}'

      où :

      <mtu>
      Spécifie le nouveau MTU du réseau cluster que vous avez spécifié avec <overlay_to>.
    • Si vous utilisez le plugin réseau OpenShift SDN :

      $ oc patch Network.operator.openshift.io cluster --type=merge --patch \
        '{"spec": { "migration": null, "defaultNetwork":{ "openshiftSDNConfig": { "mtu": <mtu> }}}}'

      où :

      <mtu>
      Spécifie le nouveau MTU du réseau cluster que vous avez spécifié avec <overlay_to>.

Vérification

Vous pouvez vérifier qu'un nœud de votre cluster utilise un MTU que vous avez spécifié dans la procédure précédente.

  1. Pour obtenir le MTU actuel du réseau de la grappe, entrez la commande suivante :

    $ oc describe network.config cluster
  2. Obtenir le MTU actuel de l'interface réseau principale d'un nœud.

    1. Pour dresser la liste des nœuds de votre cluster, entrez la commande suivante :

      $ oc get nodes
    2. Pour obtenir le paramètre MTU actuel de l'interface réseau principale d'un nœud, entrez la commande suivante :

      $ oc debug node/<node> -- chroot /host ip address show <interface>

      où :

      <node>
      Spécifie un nœud à partir de la sortie de l'étape précédente.
      <interface>
      Spécifie le nom de l'interface réseau primaire pour le nœud.

      Exemple de sortie

      ens3 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8051

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.