第34回 Open vSwitchで作るDockerのネットワーク(OVSを知る編):古賀政純の「攻めのITのためのDocker塾」(1/3 ページ)
Dockerのネットワークを構成するには、さまざまな方法があります。今回からは、OpenStackなどクラウド基盤ソフトウェアでも広く採用されている「Open vSwitch」(OVS)を利用した方法を取り上げます。OVSの紹介から始めましょう。
連載の第32回と第33回で、Linux OSが標準で提供するブリッジ・インタフェースを使い、マルチホストのコンテナ間通信を実現する方法を紹介しました。今回は、オープンソースのクラウド基盤ソフトウェアでも広く採用されている「Open vSwitch」を使って、コンテナとホストOSを同一LANセグメントに所属させるフラットなネットワークを構築します。
Open vSwitchを知る
Open vSwitch(Open Virtual Switch、通称「OVS」)は、ソフトウェア定義型ネットワーク(SDN)を実現する仮想スイッチです。複数の物理サーバやハイパーバイザ型の仮想マシン、コンテナ間のトラフィックを細かく制御でき、大規模な仮想化基盤およびクラウド基盤にも対応できるよう設計されています。2009年のリリース以降、現在までコミュニティーによる開発が精力的に続けられ、Apache 2.0ライセンスのオープンソース・ソフトウェアとして無償利用できます。移植性の高いC言語で記述され、Linux以外に、FreeBSDやNetBSDなどのBSD系のOSでも動作します。
採用範囲は、一般的なLinux OSやハイパーバイザ型の仮想化基盤ソフトウェア、オープンソースベースのクラウド基盤ソフトウェア上で稼働するソフトウェア・スイッチなど幅広く、特にOpenStackでは、テナント(OpenStackの世界では「プロジェクト」と呼ばれます)内の仮想マシン(インスタンス)が所属する仮想的なプライベート・ネットワーク上で通信を行うための仮想スイッチを実現するために利用されています。通常のLinux OS上にインストールすれば、簡単に仮想スイッチを実現できます。
KVMやVirtualBox、XenServerなどハイパーバイザ型の仮想化ソフトウェアが流行した背景には、物理サーバの統合ニーズがありました。物理サーバの統合で非常に重要な点は、ハードウェアレイヤの抽象化といえます。ハイパーバイザ型の仮想化ソフトウェアは、ゲストOSに対して抽象化した計算資源、つまり仮想マシンを提供します。仮想マシンによって、1台の物理サーバのハードウェア上で複数のゲストOSを同時に稼働させることができます。
仮想マシンには仮想のCPU、メモリ、HDD、NICなどが搭載されています。仮想マシンの仮想NIC(Virtual NIC=vNICと呼ぶ場合もあります)は、さらにハイパーバイザ型仮想化ソフトウェアが提供する仮想スイッチによって、ネットワークを柔軟に構成することができます。これが「ネットワークの仮想化」です。
OVSは、ハイパーバイザ型の仮想化環境やコンテナ環境では仮想スイッチを形成し、物理スイッチ、仮想マシン、コンテナの通信路を実現します。仮想マシンやコンテナは、仮想NICを持っており、仮想スイッチが提供する仮想インタフェースと接続されます。OVSが提供する仮想スイッチと接続された仮想マシンやコンテナは、レイヤ2の仮想ネットワークを形成し、仮想スイッチ経由で仮想マシン同士、またはコンテナ同士の通信を行えます。
関連記事
- 第33回 Dockerコンテナ同士の通信方法、フラットなネットワークを作る(後編)
引き続き、「Swarmクラスタ」を使わずに複数の物理サーバで稼働するDockerコンテナ同士を通信させる方法について紹介します。前編ではコンテナ用のネットワーク「mynet1」を用いる方法を取り上げましたが、後編ではこれを使わない方法も取り上げてみたいと思います。 - 第32回 Dockerコンテナ同士の通信方法、フラットなネットワークを作る(前編)
複数の物理サーバで稼働するDockerコンテナ同士を通信させるには「Swarmクラスタ」を使います。実はSwarmクラスタを構成することなく、できる場合があります。今回からその方法を紹介していきましょう。 - 第29回 Docker Networkingの基礎知識 標準的なネットワークを理解する
引き続きDocker環境におけるネットワーキングの基礎を解説します。今回は、Dockerでの標準的なネットワークを例に、手順を交えながらその構成がどうなっているのかを理解していきましょう。 - 【古賀政純の「攻めのITのためのDocker塾」】バックナンバー
Copyright © ITmedia, Inc. All Rights Reserved.