4.5. 클러스터에 OVS balance-slb 모드 활성화


클러스터가 실행되는 인프라에서 Open vSwitch(OVS) balance-slb 모드를 활성화하여 두 개 이상의 물리적 인터페이스가 네트워크 트래픽을 공유할 수 있습니다. Balance-SLB 모드 인터페이스는 가상화 워크로드를 실행하는 클러스터에 대해 소스 로드 밸런싱(SLB) 기능을 제공하며, 이 인터페이스는 네트워크 스위치와 통신할 필요 없이 독립적으로 작동할 수 있습니다.

현재 소스 부하 분산은 필요한 경우 br-phy 와 같은 본드 인터페이스에 MAC(Media Access Control) 주소와 vLAN(Virtual Local Area Network)을 할당하여 작동합니다. 인터페이스 간에 MAC 주소와 vLAN이 공유되므로 balance-slb 모드를 사용하여 Pod 트래픽을 공유하는 것은 아무런 이점이 없습니다.

다음 다이어그램은 간단한 클러스터 인프라 레이아웃에서의 balance-slb 모드를 보여줍니다. 가상 머신(VM)은 특정 로컬넷 NetworkAttachmentDefinition (NAD) 사용자 정의 리소스 정의(CRD), NAD 0 또는 NAD 1 에 연결됩니다. 각 NAD는 VLAN ID 태그와 같은 네트워크 트래픽에 대한 액세스를 VM에 제공합니다. br-ex OVS 브리지는 VM에서 트래픽을 수신하고 해당 트래픽을 다음 OVS 브리지인 br-phy 로 전달합니다. br-phy 브리지는 SLB 본드의 컨트롤러 역할을 합니다. SLB 본드는 eno0eno1 과 같은 물리적 인터페이스 링크를 통해 다양한 VM 포트의 트래픽을 분산합니다. 또한, 두 물리적 인터페이스에서 들어오는 트래픽은 OVS 브리지 세트를 통과하여 VM에 도달할 수 있습니다.

그림 4.1. 로컬넷에서 두 개의 NAD로 작동하는 OVS balance-slb 모드

두 개의 NAD가 있는 로컬넷에서 작동하는 OVS `balance-slb` 모드

OVS 본딩을 사용하면 balance-slb 모드 인터페이스를 기본 또는 보조 네트워크 유형에 통합할 수 있습니다. OVS 본딩에 대한 다음 사항을 참고하세요.

  • OVN-Kubernetes CNI 플러그인을 지원하고 플러그인과 쉽게 통합됩니다.
  • 기본적으로 balance-slb 모드를 지원합니다.
  • OpenShift Container Platform 클러스터 외부에서 해당 메서드를 사용할 수 없습니다.

사전 요구 사항

  • 기본 네트워크에 두 개 이상의 물리적 인터페이스가 연결되어 있으며 MachineConfig 파일에서 인터페이스를 정의했습니다.
  • 매니페스트 객체를 생성하고 객체 구성 파일에서 사용자 정의 br-ex 브리지를 정의했습니다.
  • 기본 네트워크에 두 개 이상의 물리적 인터페이스가 연결되어 있으며 NAD 파일에서 인터페이스를 정의했습니다.

프로세스

  1. 클러스터에 존재하는 각 베어 메탈 호스트에 대해 클러스터의 install-config.yaml 파일에서 다음 예와 유사한 networkConfig 섹션을 정의합니다.

    # ...
    networkConfig:
      interfaces:
        - name: enp1s0 
    1
    
          type: interface
          state: up
          ipv4:
            dhcp: true
            enabled: true
          ipv6:
            enabled: false
        - name: enp2s0 
    2
    
          type: interface
          state: up
          ipv4:
            dhcp: true
            enabled: true
          ipv6:
            enabled: false
        - name: enp3s0 
    3
    
          type: interface
          state: up
          ipv4:
            enabled: false
          ipv6:
            enabled: false
    # ...
    1
    프로비저닝된 네트워크 인터페이스 카드(NIC)에 대한 인터페이스입니다.
    2
    본드 인터페이스에 대한 Ignition 구성 파일을 가져오는 첫 번째 본드 인터페이스입니다.
    3
    두 번째 결합 인터페이스는 클러스터 설치 중 점화를 끌어내는 최소 구성의 일부입니다.
  2. MachineConfig 매니페스트 파일에 각 네트워크 인터페이스를 정의합니다.

    여러 네트워크 인터페이스를 정의하는 MachineConfig 매니페스트 파일 예

    # ...
    ovn:
      bridge-mappings:
        - localnet: localnet-network
          bridge: br-ex
          state: present
    interfaces:
      - name: br-ex
        type: ovs-bridge
        state: up
        ipv4:
          enabled: false
          dhcp: false
        ipv6:
          enabled: false
          dhcp: false
        bridge:
          allow-extra-patch-ports: true
          port:
            - name: br-ex
            - name: patch-ex-to-phy
        ovs-db:
          external_ids:
            bridge-uplink: "patch-ex-to-phy"
      - name: br-ex
        type: ovs-interface
        state: up
        copy-mac-from: enp2s0
        ipv4:
          enabled: true
          dhcp: true
          auto-route-metric: 48
        ipv6:
          enabled: false
          dhcp: false
      - name: br-phy
        type: ovs-bridge
        state: up
        ipv4:
          enabled: false
          dhcp: false
        ipv6:
          enabled: false
          dhcp: false
        bridge:
          allow-extra-patch-ports: true
          port:
            - name: patch-phy-to-ex
            - name: ovs-bond
              link-aggregation:
                mode: balance-slb
                port:
                  - name: enp2s0
                  - name: enp3s0
      - name: patch-ex-to-phy
        type: ovs-interface
        state: up
        patch:
          peer: patch-phy-to-ex
      - name: patch-phy-to-ex
        type: ovs-interface
        state: up
        patch:
          peer: patch-ex-to-phy
    # ...

  3. cat 명령을 사용하여 MachineConfig 매니페스트 파일의 인터페이스 내용을 base64로 인코딩합니다.

    $ cat machineconfig.yaml | base64 -w0 
    1
    1
    -w0 옵션은 base64 인코딩 작업 중에 줄바꿈을 방지합니다.
  4. 마스터 역할과 워커 역할에 대한 MachineConfig 매니페스트 파일을 만듭니다. 다음 예제 매니페스트 파일은 클러스터에 있는 모든 노드에 대한 마스터 역할을 구성합니다. 노드에 맞는 마스터워커 역할에 대한 매니페스트 파일을 만들 수도 있습니다.

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      labels:
        machineconfiguration.openshift.io/role: master
      name: 10-br-ex-master 
    1
    
    spec:
      config:
        ignition:
          version: 3.2.0
        storage:
          files:
          - contents:
              source: data:text/plain;charset=utf-8;base64,<base64_encoded_nmstate_configuration> 
    2
    
            mode: 0644
            overwrite: true
            path: /etc/nmstate/openshift/cluster.yml 
    3
    1
    정책의 이름입니다.
    2
    인코딩된 base64 정보를 지정된 경로에 씁니다.
    3
    cluster.yml 파일의 경로를 지정합니다. 클러스터의 각 노드에 대해 <node_short_hostname> .yml과 같이 노드에 대한 짧은 호스트 이름 경로를 지정할 수 있습니다.
  5. MachineConfig 매니페스트 파일을 ./<installation_directory>/manifests 디렉토리에 저장합니다. 여기서 <installation_directory> 는 설치 프로그램이 파일을 생성하는 디렉토리입니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동