Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第30章 ネイティブのコンテナールーティングの設定

30.1. ネットワークの概要

一般的なネットワーク設定を以下に示します。

  • 11.11.0.0/16 はコンテナーネットワークです。
  • 11.11.x.0/24 サブネットは各ノード用に予約済みで、Docker Linux ブリッジに割り当てられています。
  • 各ノードには 11.11.0.0/16 の範囲内にある (ローカルサブネットを除く) あらゆるものに到達するために使用するルーターへのルートがあります。
  • ルーターには各ノードのルートがあるため、適切なノードにポイントできます。
  • ネットワークトポロジーが変更されない限り、新規ノードが追加されても既存のノードを変更する必要はありません。
  • IP 転送が各ノードで有効になっています。

以下の図はこのトピックで説明されているコンテナーのネットワーク設定を示しています。2 つのネットワークインターフェースカードを搭載したルーターとして機能する 1 つの Linux ノード、2 つのスイッチ、およびこれらのスイッチに接続された 3 つのノードを使用しています。

Network Diagram

30.2. ネイティブのコンテナールーティングの設定

既存のスイッチとルーター、Linux のカーネルネットワークスタックを使用してコンテナーネットワークを設定できます。

ネットワーク管理者は、新規ノードがクラスターに追加される際に、ルーターを変更するか、ルーターを変更するスクリプトを作成する必要があります。

このプロセスを変化させて、あらゆるタイプのルーターで使用することができます。

30.3. コンテナーネットワーク用のノードのセットアップ

  1. 未使用の 11.11.x.0/24 サブネット IP アドレスをノードの Linux ブリッジに割り当てます。

    # brctl addbr lbr0
    # ip addr add 11.11.1.1/24 dev lbr0
    # ip link set dev lbr0 up
  2. 新規ブリッジを使用するように Docker 起動スクリプトを変更します。デフォルトでは、起動スクリプトは /etc/sysconfig/docker ファイルです。

    # docker -d -b lbr0 --other-options
  3. 11.11.0.0/16 ネットワークのルーターへのルートを追加します。

    # ip route add 11.11.0.0/16 via 192.168.2.2 dev p3p1
  4. ノードで IP 転送を有効にします。

    # sysctl -w net.ipv4.ip_forward=1

30.4. コンテナーネットワーク用のルーターのセットアップ

以下の手順は、複数の NIC を搭載した Linux ボックスがルーターとして使用されていることを前提としています。必要に応じて手順を変更して、特定のルーターに対応する構文を使用してください。

  1. ルーターで IP 転送を有効にします。

    # sysctl -w net.ipv4.ip_forward=1
  2. クラスターに追加された各ノードのルートを追加します。

    # ip route add <node_subnet> via <node_ip_address> dev <interface through which node is L2 accessible>
    # ip route add 11.11.1.0/24 via 192.168.2.1 dev p3p1
    # ip route add 11.11.2.0/24 via 192.168.3.3 dev p3p2
    # ip route add 11.11.3.0/24 via 192.168.3.4 dev p3p2