5.3.2.2. Flannel SDN
flannel は、コンテナー専用に設計された仮想ネットワーク層です。OpenShift Container Platform は、デフォルトの Software-Defined Networking (SDN) コンポーネントの代わりに、ネットワークコンテナーとして flannel を使用できます。これは、OpenStack など、SDN にも依存するクラウドプロバイダープロット内で OpenShift Container Platform を実行している場合や、両プラットフォームを通してパケットを 2 回カプセル化しなくても良いようにする場合に便利です。
アーキテクチャー
OpenShift Container Platform は、flannel を host-gw モードで実行し、コンテナー間のルートをマッピングします。ネットワーク内の各ホストは、flanneld と呼ばれるエージェントを実行します。 このエージェントは以下を行います。
- ホストごとに一意のサブネットを管理する
- ホスト上の各コンテナーに IP アドレスを割り当てる
- 別のホスト上であっても、コンテナー間のルートをマッピングする
各 flanneld エージェントは、この情報を中央の etcd ストアに提供し、ホスト上の他のエージェントがパケットを、flannel ネットワーク内の他のコンテナーにルーティングできるようにします。
以下の図は、flannel ネットワークを使用したコンテナー間のアーキテクチャーおよびデータフローを示します。
ノード 1 には以下のルートが含まれます。
default via 192.168.0.100 dev eth0 proto static metric 100 10.1.15.0/24 dev docker0 proto kernel scope link src 10.1.15.1 10.1.20.0/24 via 192.168.0.200 dev eth0
ノード 2 には以下のルートが含まれます。
default via 192.168.0.200 dev eth0 proto static metric 100 10.1.20.0/24 dev docker0 proto kernel scope link src 10.1.20.1 10.1.15.0/24 via 192.168.0.100 dev eth0