2.2. 클러스터 네트워크 MTU 변경


클러스터 관리자는 클러스터의 최대 전송 단위(MTU)를 늘리거나 줄일 수 있습니다.

중요

MTU 마이그레이션 프로세스 중에는 노드의 MTU 값을 롤백할 수 없지만 MTU 마이그레이션 프로세스가 완료된 후에는 해당 값을 롤백할 수 있습니다.

마이그레이션은 중단을 초래할 수 있으며 MTU 업데이트가 적용되는 동안 클러스터의 노드를 일시적으로 사용할 수 없을 수 있습니다.

다음 절차에서는 머신 구성, DHCP(동적 호스트 구성 프로토콜) 또는 ISO 이미지를 사용하여 클러스터 네트워크 MTU를 변경하는 방법을 설명합니다. DHCP 또는 ISO 방식을 사용하는 경우 클러스터를 설치한 후 보관한 구성 아티팩트를 참조하여 절차를 완료해야 합니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • 클러스터 관리자 권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다.
  • 클러스터의 대상 MTU를 식별했습니다. OVN-Kubernetes 네트워크 플러그인의 MTU는 클러스터의 가장 낮은 하드웨어 MTU 값보다 100 낮게 설정해야 합니다.
  • 노드가 물리적 머신인 경우 클러스터 네트워크와 연결된 네트워크 스위치가 점보 프레임을 지원하는지 확인하세요.
  • 노드가 가상 머신(VM)인 경우 하이퍼바이저와 연결된 네트워크 스위치가 점보 프레임을 지원하는지 확인하세요.

프로세스

  1. 클러스터 네트워크의 현재 MTU를 얻으려면 다음 명령을 입력하세요.

    $ oc describe network.config cluster
    Copy to Clipboard Toggle word wrap

    출력 예

    ...
    Status:
      Cluster Network:
        Cidr:               10.217.0.0/22
        Host Prefix:        23
      Cluster Network MTU:  1400
      Network Type:         OVNKubernetes
      Service Network:
        10.217.4.0/23
    ...
    Copy to Clipboard Toggle word wrap

  2. 하드웨어 MTU에 대한 구성을 준비하세요.

    중요

    클러스터 노드의 하드웨어 MTU를 구성하는 방법에는 여러 가지가 있습니다. 다음 예에서는 가장 일반적인 방법만 보여줍니다. 계속 진행하기 전에 인프라 MTU가 올바른지, 클러스터 노드에서 하드웨어 MTU를 구성하는 기본 방법이 적용되는지 확인해야 합니다.

    • 하드웨어 MTU가 DHCP로 지정된 경우 다음 dnsmasq 구성과 같이 DHCP 구성을 업데이트하세요.

      dhcp-option-force=26,<mtu>
      Copy to Clipboard Toggle word wrap

      다음과 같습니다.

      <mtu>
      DHCP 서버가 광고할 하드웨어 MTU를 지정합니다.
    • PXE를 사용하는 커널 명령줄을 통해 하드웨어 MTU가 지정된 경우 해당 구성을 적절히 업데이트합니다.
    • NetworkManager 연결 구성에서 하드웨어 MTU가 지정된 경우 다음 단계를 완료하세요. DHCP, 커널 명령줄 또는 기타 방법을 사용하여 네트워크 구성을 명시적으로 지정하지 않으면 이 접근 방식이 OpenShift Container Platform의 기본값입니다. 다음 절차가 수정되지 않고 작동하려면 모든 클러스터 노드가 동일한 기본 네트워크 구성을 사용해야 합니다.

      1. 다음 명령을 입력하여 기본 네트워크 인터페이스를 찾으세요.

        $ oc debug node/<node_name> -- chroot /host nmcli -g connection.interface-name c show ovs-if-phys0
        Copy to Clipboard Toggle word wrap

        다음과 같습니다.

        <node_name>
        클러스터의 노드 이름을 지정합니다.
      2. <interface>-mtu.conf 파일에 다음 NetworkManager 구성을 만듭니다.

        NetworkManager 연결 구성 예

        [connection-<interface>-mtu]
        match-device=interface-name:<interface>
        ethernet.mtu=<mtu>
        Copy to Clipboard Toggle word wrap

        다음과 같습니다.

        <mtu>
        새로운 하드웨어 MTU 값을 지정합니다.
        <interface>
        기본 네트워크 인터페이스 이름을 지정합니다.
      3. 클러스터의 제어 평면 노드용 하나와 작업자 노드용 하나, 총 두 개의 MachineConfig 객체를 만듭니다.

        1. control-plane-interface.bu 파일에 다음 Butane 구성을 만듭니다.

          참고

          구성 파일에서 지정하는 Butane 버전은 OpenShift Container Platform 버전과 일치해야 하며 항상 0 으로 끝나야 합니다. 예를 들어, 4.19.0입니다. Butane에 대한 자세한 내용은 “Butane 을 사용하여 머신 구성 생성”을 참조하십시오.

          variant: openshift
          version: 4.19.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
          Copy to Clipboard Toggle word wrap
          1
          기본 네트워크 인터페이스에 대한 NetworkManager 연결 이름을 지정합니다.
          2
          이전 단계에서 업데이트된 NetworkManager 구성 파일에 대한 로컬 파일 이름을 지정합니다.
        2. worker-interface.bu 파일에 다음 Butane 구성을 만듭니다.

          참고

          구성 파일에서 지정하는 Butane 버전은 OpenShift Container Platform 버전과 일치해야 하며 항상 0 으로 끝나야 합니다. 예를 들어, 4.19.0입니다. Butane에 대한 자세한 내용은 “Butane 을 사용하여 머신 구성 생성”을 참조하십시오.

          variant: openshift
          version: 4.19.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
          Copy to Clipboard Toggle word wrap
          1
          기본 네트워크 인터페이스에 대한 NetworkManager 연결 이름을 지정합니다.
          2
          이전 단계에서 업데이트된 NetworkManager 구성 파일에 대한 로컬 파일 이름을 지정합니다.
        3. 다음 명령을 실행하여 Butane 구성에서 MachineConfig 객체를 만듭니다.

          $ for manifest in control-plane-interface worker-interface; do
              butane --files-dir . $manifest.bu > $manifest.yaml
            done
          Copy to Clipboard Toggle word wrap
          주의

          이 절차의 뒷부분에서 명시적으로 지시하기 전까지는 이러한 머신 구성을 적용하지 마세요. 지금 이러한 머신 구성을 적용하면 클러스터의 안정성이 저하됩니다.

  3. MTU 마이그레이션을 시작하려면 다음 명령을 입력하여 마이그레이션 구성을 지정합니다. Machine Config Operator는 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> } } } } }'
    Copy to Clipboard Toggle word wrap

    다음과 같습니다.

    <overlay_from>
    현재 클러스터 네트워크 MTU 값을 지정합니다.
    <overlay_to>
    클러스터 네트워크의 대상 MTU를 지정합니다. 이 값은 <machine_to> 값을 기준으로 설정됩니다. OVN-Kubernetes의 경우 이 값은 <machine_to> 값보다 100 미만이어야 합니다.
    <machine_to>
    기본 호스트 네트워크의 기본 네트워크 인터페이스에 대한 MTU를 지정합니다.

    클러스터 MTU를 증가시키는 예

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

  4. 머신 구성 운영자가 각 머신 구성 풀의 머신을 업데이트하면서 각 노드를 하나씩 재부팅합니다. 모든 노드가 업데이트될 때까지 기다려야 합니다. 다음 명령을 입력하여 머신 구성 풀 상태를 확인합니다.

    $ oc get machineconfigpools
    Copy to Clipboard Toggle word wrap

    업데이트된 노드의 상태가 UPDATED=true, UPDATING=false,DEGRADED=false입니다.

    참고

    기본적으로 Machine Config Operator는 풀당 한 대의 머신을 한 번에 업데이트하므로 마이그레이션에 걸리는 총 시간은 클러스터 크기에 따라 증가합니다.

  5. 호스트의 새 머신 구성 상태를 확인합니다.

    1. 머신 구성 상태 및 적용된 머신 구성 이름을 나열하려면 다음 명령을 입력합니다.

      $ oc describe node | egrep "hostname|machineconfig"
      Copy to Clipboard Toggle word wrap

      출력 예

      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
      Copy to Clipboard Toggle word wrap

    2. 다음 구문이 올바른지 확인합니다.

      • machineconfiguration.openshift.io/state 필드의 값은 Done입니다.
      • machineconfiguration.openshift.io/currentConfig 필드의 값은 machineconfiguration.openshift.io/desiredConfig 필드의 값과 동일합니다.
    3. 머신 구성이 올바른지 확인하려면 다음 명령을 입력합니다.

      $ oc get machineconfig <config_name> -o yaml | grep ExecStart
      Copy to Clipboard Toggle word wrap

      여기서 <config_name>machineconfiguration.openshift.io/currentConfig 필드에서 머신 구성의 이름입니다.

      머신 구성은 다음 업데이트를 systemd 구성에 포함해야 합니다.

      ExecStart=/usr/local/bin/mtu-migration.sh
      Copy to Clipboard Toggle word wrap
  6. 기본 네트워크 인터페이스 MTU 값을 업데이트합니다.

    • NetworkManager 연결 구성으로 새 MTU를 지정하는 경우 다음 명령을 입력합니다. MachineConfig Operator는 클러스터의 노드에 대한 롤링 재부팅을 자동으로 수행합니다.

      $ for manifest in control-plane-interface worker-interface; do
          oc create -f $manifest.yaml
        done
      Copy to Clipboard Toggle word wrap
    • DHCP 서버 옵션이나 커널 명령줄 및 PXE를 사용하여 새로운 MTU를 지정하는 경우 인프라에 맞게 필요한 변경을 수행하세요.
  7. 머신 구성 운영자가 각 머신 구성 풀의 머신을 업데이트하면서 각 노드를 하나씩 재부팅합니다. 모든 노드가 업데이트될 때까지 기다려야 합니다. 다음 명령을 입력하여 머신 구성 풀 상태를 확인합니다.

    $ oc get machineconfigpools
    Copy to Clipboard Toggle word wrap

    업데이트된 노드의 상태가 UPDATED=true, UPDATING=false,DEGRADED=false입니다.

    참고

    기본적으로 Machine Config Operator는 풀당 한 대의 머신을 한 번에 업데이트하므로 마이그레이션에 걸리는 총 시간은 클러스터 크기에 따라 증가합니다.

  8. 호스트의 새 머신 구성 상태를 확인합니다.

    1. 머신 구성 상태 및 적용된 머신 구성 이름을 나열하려면 다음 명령을 입력합니다.

      $ oc describe node | egrep "hostname|machineconfig"
      Copy to Clipboard Toggle word wrap

      출력 예

      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
      Copy to Clipboard Toggle word wrap

      다음 구문이 올바른지 확인합니다.

      • machineconfiguration.openshift.io/state 필드의 값은 Done입니다.
      • machineconfiguration.openshift.io/currentConfig 필드의 값은 machineconfiguration.openshift.io/desiredConfig 필드의 값과 동일합니다.
    2. 머신 구성이 올바른지 확인하려면 다음 명령을 입력합니다.

      $ oc get machineconfig <config_name> -o yaml | grep path:
      Copy to Clipboard Toggle word wrap

      여기서 <config_name>machineconfiguration.openshift.io/currentConfig 필드에서 머신 구성의 이름입니다.

      머신 구성이 성공적으로 배포되면 이전 출력에 /etc/NetworkManager/conf.d/99-<interface>-mtu.conf 파일 경로와 ExecStart=/usr/local/bin/mtu-migration.sh 줄이 포함됩니다.

  9. MTU 마이그레이션을 완료하려면 OVN-Kubernetes 네트워크 플러그인에 대해 다음 명령을 입력하세요.

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

    다음과 같습니다.

    <mtu>
    <overlay_to> 로 지정한 새 클러스터 네트워크 MTU를 지정합니다.
  10. MTU 마이그레이션을 완료한 후 각 머신 구성 풀 노드는 하나씩 재부팅됩니다. 모든 노드가 업데이트될 때까지 기다려야 합니다. 다음 명령을 입력하여 머신 구성 풀 상태를 확인합니다.

    $ oc get machineconfigpools
    Copy to Clipboard Toggle word wrap

    업데이트된 노드의 상태가 UPDATED=true, UPDATING=false,DEGRADED=false입니다.

검증

  1. 클러스터 네트워크의 현재 MTU를 얻으려면 다음 명령을 입력하세요.

    $ oc describe network.config cluster
    Copy to Clipboard Toggle word wrap
  2. 노드의 기본 네트워크 인터페이스에 대한 현재 MTU를 가져옵니다.

    1. 클러스터의 노드를 나열하려면 다음 명령을 입력하세요.

      $ oc get nodes
      Copy to Clipboard Toggle word wrap
    2. 노드의 기본 네트워크 인터페이스에 대한 현재 MTU 설정을 얻으려면 다음 명령을 입력하세요.

      $ oc adm node-logs <node> -u ovs-configuration | grep configure-ovs.sh | grep mtu | grep <interface> | head -1
      Copy to Clipboard Toggle word wrap

      다음과 같습니다.

      <node>
      이전 단계의 출력에서 노드를 지정합니다.
      <interface>
      노드의 기본 네트워크 인터페이스 이름을 지정합니다.

      출력 예

      ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8051
      Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat