11.2. 클러스터 MTU 변경


클러스터 관리자는 클러스터의 최대 전송 단위(MTU)를 변경할 수 있습니다. 마이그레이션이 중단되고 MTU 업데이트가 롤아웃되면 클러스터의 노드를 일시적으로 사용할 수 없게 될 수 있습니다.

다음 절차에서는 시스템 구성, DHCP 또는 ISO를 사용하여 클러스터 MTU를 변경하는 방법을 설명합니다. DHCP 또는 ISO 방법을 사용하는 경우 절차를 완료하기 위해 클러스터를 설치한 후 보관한 구성 아티팩트를 참조해야 합니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 클러스터에 로그인합니다.
  • 클러스터의 대상 MTU를 식별했습니다. 클러스터가 사용하는 네트워크 플러그인에 따라 올바른 MTU가 다릅니다.

    • OVN-Kubernetes: 클러스터 MTU는 클러스터에서 가장 낮은 하드웨어 MTU 값보다 100 작아야 합니다.
    • OpenShift SDN: 클러스터 MTU는 클러스터에서 가장 낮은 하드웨어 MTU 값보다 50 미만으로 설정해야 합니다.

절차

클러스터 네트워크의 MTU를 늘리거나 줄이려면 다음 절차를 완료합니다.

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

    $ oc describe network.config cluster

    출력 예

    ...
    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. 하드웨어 MTU를 위한 구성을 준비합니다.

    • DHCP로 하드웨어 MTU를 지정하면 다음 dnsmasq 구성과 같은 DHCP 구성을 업데이트합니다.

      dhcp-option-force=26,<mtu>

      다음과 같습니다.

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

      1. 기본 네트워크 인터페이스를 찾습니다.

        • OpenShift SDN 네트워크 플러그인을 사용하는 경우 다음 명령을 입력합니다.

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

          다음과 같습니다.

          <node_name>
          클러스터에 있는 노드의 이름을 지정합니다.
        • OVN-Kubernetes 네트워크 플러그인을 사용하는 경우 다음 명령을 입력합니다.

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

          다음과 같습니다.

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

        NetworkManager 연결 구성 예

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

        다음과 같습니다.

        <mtu>
        새 하드웨어 MTU 값을 지정합니다.
        <interface>
        기본 네트워크 인터페이스 이름을 지정합니다.
      3. 두 개의 MachineConfig 오브젝트를 만듭니다. 하나는 컨트롤 플레인 노드용이고 다른 하나는 클러스터의 작업자 노드에 사용됩니다.

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

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

          variant: openshift
          version: 4.13.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
          기본 네트워크 인터페이스에 대한 NetworkManager 연결 이름을 지정합니다.
          2
          이전 단계에서 업데이트된 NetworkManager 구성 파일의 로컬 파일 이름을 지정합니다.
        3. 다음 명령을 실행하여 Butane 구성에서 MachineConfig 오브젝트를 생성합니다.

          $ for manifest in control-plane-interface worker-interface; do
              butane --files-dir . $manifest.bu > $manifest.yaml
            done
  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> } } } } }'

    다음과 같습니다.

    <overlay_from>
    현재 클러스터 네트워크 MTU 값을 지정합니다.
    <overlay_to>
    클러스터 네트워크의 대상 MTU를 지정합니다. 이 값은 < machine_to > 값을 기준으로 설정되며 OVN-Kubernetes의 경우 100 미만이어야 하며 OpenShift SDN의 경우 50 작아야 합니다.
    <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} } } } }'

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

    $ oc get mcp

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

    참고

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

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

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

      $ oc describe node | egrep "hostname|machineconfig"

      출력 예

      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

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

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

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

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

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

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

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

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

    $ oc get mcp

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

    참고

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

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

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

      $ oc describe node | egrep "hostname|machineconfig"

      출력 예

      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

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

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

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

      여기서 <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> }}}}'

      다음과 같습니다.

      <mtu>
      < overlay_to>로 지정한 새 클러스터 네트워크 MTU를 지정합니다.
    • OpenShift SDN 네트워크 플러그인을 사용하는 경우:

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

      다음과 같습니다.

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

    $ oc get mcp

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

검증

클러스터의 노드가 이전 프로세스에서 지정한 MTU를 사용하는지 확인할 수 있습니다.

  1. 클러스터 네트워크의 현재 MTU를 가져오려면 다음 명령을 입력합니다.

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

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

      $ oc get nodes
    2. 노드의 기본 네트워크 인터페이스의 현재 MTU 설정을 가져오려면 다음 명령을 입력합니다.

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

      다음과 같습니다.

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

      출력 예

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

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.