3.6. クラスターで OVS balance-slb モードを有効にする


Open vSwitch (OVS)の balance-slb モードを有効にして、2 つ以上の物理インターフェイスがネットワークトラフィックを共有できるようにすることができます。Balance -slb モードインターフェイスは、ネットワークスイッチとの負荷分散を必要とせずに、仮想化ワークロードを実行するクラスターにソース負荷分散(SLB)機能を提供することができます。

現在、ソース負荷分散はボンドインターフェイスで実行され、このインターフェイスは br-phy などの補助ブリッジに接続します。ソースの負荷分散は、異なる Media Access Control (MAC)アドレスと仮想ローカルエリアネットワーク(VLAN)の組み合わせでのみ分散されます。すべての OVN-Kubernetes Pod トラフィックは同じ MAC アドレスと VLAN を使用するため、このトラフィックは多くの物理インターフェイス間で負荷分散できないことに注意してください。

次の図は、単純なクラスターインフラストラクチャーレイアウトでの balance-slb モードを示しています。仮想マシン (VM) は、特定の localnet NetworkAttachmentDefinition (NAD) カスタムリソース定義 (CRD)、NAD 0 または NAD 1 に接続します。各 NAD は、VLAN タグ付きまたはタグなしのトラフィックをサポートする基盤となる物理ネットワークにアクセスできるように、VM を提供します。br-ex OVS ブリッジは仮想マシンからのトラフィックを受信し、そのトラフィックを次の OVS ブリッジである br-phy に渡します。br-phy ブリッジは SLB ボンディングのコントローラーとして機能します。SLB ボンディングは、eno0eno1 などの物理インターフェイスリンクを介して、異なる仮想マシンポートからのトラフィックを分散します。さらに、どちらの物理インターフェイスからの Ingress トラフィックも、OVS ブリッジのセットを通過して仮想マシンに到達できます。

図3.1 2 つの NAD CRD を持つ localnet で動作する OVS balance-slb モード

2 つの NAD CRD を持つ localnet で動作する OVS 'balance-slb' モード

OVS ボンディングを使用して、balance-slb モードインターフェイスをプライマリーまたはセカンダリーネットワークタイプに統合できます。OVS ボンディングでは、次の点に注意してください。

  • OVN-Kubernetes CNI プラグインをサポートし、プラグインと簡単に統合できます。
  • ネイティブで balance-slb モードをサポートします。

前提条件

  • プライマリーネットワークに複数の物理インターフェイスが接続されており、それらのインターフェイスを MachineConfig ファイルで定義している。
  • マニフェストオブジェクトを作成し、オブジェクト設定ファイルでカスタマイズされた br-ex ブリッジを定義している。
  • プライマリーネットワークに複数の物理インターフェイスが割り当てられ、NAD CRD ファイルでインターフェイスを定義している。

手順

  1. クラスター内に存在するベアメタルホストごとに、クラスターの install-config.yaml ファイルで、次の例のように networkConfig セクションを定義します。

    apiVersion: v1
    kind: InstallConfig
    metadata:
      name: <cluster-name>
    # ...
    networkConfig:
      interfaces:
        - name: enp1s0 
    1
    
          type: ethernet
          state: up
          ipv4:
            dhcp: true
            enabled: true
          ipv6:
            enabled: false
        - name: enp2s0 
    2
    
          type: ethernet
          state: up
          mtu: 1500 
    3
    
          ipv4:
            dhcp: true
            enabled: true
          ipv6:
            dhcp: true
            enabled: true
        - name: enp3s0 
    4
    
          type: ethernet
          state: up
          mtu: 1500
          ipv4:
            enabled: false
          ipv6:
            enabled: false
    # ...
    Copy to Clipboard Toggle word wrap
    1
    プロビジョニングされたネットワークインターフェイスコントローラー(NIC)のインターフェイス。
    2
    ボンディングインターフェイス用の Ignition 設定ファイルを取り込む最初のボンディングされたインターフェイス。
    3
    ボンディングポートで br-ex 最大伝送単位(MTU)を手動で設定します。
    4
    2 つ目のボンディングされたインターフェイスは、クラスターのインストール中に Ignition を実行する最小設定の一部です。
  2. NMState 設定ファイルで各ネットワークインターフェイスを定義します。

    多くのネットワークインターフェイスを定義する NMState 設定ファイルの例

    apiVersion: nmstate.io/v1
    kind: NodeNetworkConfigurationPolicy
    metadata:
    # ...
    ovn:
      bridge-mappings:
        - localnet: localnet-network
          bridge: br-ex
          state: present
    interfaces:
      - name: br-ex
        type: ovs-bridge
        state: up
        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
        mtu: 1500 
    1
    
        ipv4:
          enabled: true
          dhcp: true
          auto-route-metric: 48
        ipv6:
          enabled: false
          dhcp: false
          auto-route-metric: 48
      - name: br-phy
        type: ovs-bridge
        state: up
        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
      - name: enp1s0
        type: ethernet
        state: up
        ipv4:
          dhcp: true
          enabled: true
        ipv6:
          enabled: false
      - name: enp2s0
        type: ethernet
        state: up
        mtu: 1500
        ipv4:
          enabled: false
        ipv6:
          enabled: false
      - name: enp3s0
        type: ethernet
        state: up
        mtu: 1500
        ipv4:
          enabled: false
        ipv6:
          enabled: false
    # ...
    Copy to Clipboard Toggle word wrap

    1
    ボンディングポートで br-ex MTU を手動で設定します。
  3. base64 コマンドを使用して、NMState 設定ファイルのインターフェイスコンテンツをエンコードします。

    $ base64 -w0  <nmstate_configuration>.yml 
    1
    Copy to Clipboard Toggle word wrap
    1
    -w0 オプションは、base64 エンコード操作中に行の折り返しを防止します。
  4. master ロールと worker ロールの MachineConfig マニフェストファイルを作成します。前のコマンドの base64 でエンコードされた文字列を各 MachineConfig マニフェストファイルに埋め込むようにしてください。次のマニフェストファイルの例では、クラスター内に存在するすべてのノードに対して master ロールを設定します。ノード固有の master ロールと worker ロールのマニフェストファイルを作成することもできます。

    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
    Copy to Clipboard Toggle word wrap
    1
    ポリシーの名前。
    2
    エンコードされた base64 情報を指定されたパスに書き込みます。
    3
    cluster.yml ファイルへのパスを指定します。クラスター内の各ノードに対して、<node_short_hostname>.yml など、ノードへの短いホスト名パスを指定できます。
  5. MachineConfig マニフェストファイルを ./<installation_directory>/manifests ディレクトリー に保存します。ここで、< installation_directory > は、インストールプログラムがファイルを作成するディレクトリーに移動します。

    Machine Config Operator (MCO)は各マニフェストファイルからコンテンツを取得し、ローリング更新中に選択されたすべてのノードにコンテンツを一貫して適用します。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る