第30回 Docker Swarmを知る 複数の物理サーバでDocker環境をクラスタ化する方法:古賀政純の「攻めのITのためのDocker塾」(1/3 ページ)
複数の物理サーバで稼働するDockerコンテナ同士が通信するには、どうすればよいのでしょうか。そのためには、Docker特有のコンポーネントを理解する必要があります。今回は、Docker環境のネットワーキングを実現するソフトウェアコンポーネントと具体的なコンテナ間の通信方法を紹介します。
複数の物理サーバで稼働するコンテナ同士の通信
Dockerの登場以来、コミュニティーで盛んに議論されていた話題の一つに、複数の物理サーバで稼働するコンテナ同士の通信(一般的にマルチホストネットワークといいます)があります。この連載で紹介していた内容は、全て1台の物理サーバでコンテナを稼働させるものでした。しかし、実際のエンタープライズシステムでは複数の物理サーバを用意し、その上で稼働するコンテナ同士で通信を行うことがシステムの要件として求められます。
複数の物理サーバで稼働するコンテナ同士でTCP/IP通信を行う方法としては、主に以下の2種類のネットワーク構成が挙げられます。
- オーバレイネットワーク(VXLAN)
- ブリッジ接続によるネットワーク
1つ目のオーバレイネットワークによる方法では、簡単に言えば、Dockerホストが提供するdocker0によるブリッジインタフェースが所属する既存ネットワークとは別に、Dockerコンテナ同士が通信する仮想的なネットワークを構築します。オーバレイとは「かぶせる」という意味ですが、既存のネットワーク上にさらにコンテナ同士の通信専用ネットワークをかぶせるイメージから、「オーバレイネットワーク」と呼ばれています。このオーバレイネットワークは、既存の物理NICやdocker0ブリッジの設定を変更せずにコンテナ通信用のネットワークを形成し、柔軟性の高いソフトウェア定義型ネットワークを構築することができます。
この構成は、VXLAN(Virtual eXtensible Local Area Network)よって実現されています。VXLANは、レイヤ3(L3)のネットワーク上に論理的なレイヤ2(L2)ネットワークを構築できるトンネリングプロトコルであり、大規模なデータセンターでのマルチテナント環境を意識した設計になっています。VXLAN自体はOpenStackなどでも採用されており、ソフトウェア定義型ネットワーク(SDN)を構成するクラウド基盤では必要不可欠となっています。
一新されたDocker Swarm
従来のDocker環境でオーバレイネットワークを実現するには、ネットワーク情報を保持するためのDocker純正ではないサードパーティ製の「分散キーバリューストア」(consulやetcdと呼ばれるソフトウェアなど)が必要でした。しかし2016年7月28日に登場したDocker 1.12によって不要になりました。
また、複数のDockerホストをクラスタ化する「Docker Swarm」(ドッカー・スウォーム)がDockerエンジンにビルトインされ、複数の物理サーバからなるオーバレイネットワークを簡単に構築できるようになりました。このDocker Swarmクラスタ内で定義したオーバレイネットワークにより、Docker Swarmに所属するDockerコンテナ間でネットワーク通信ができるようになったのです。
Docker Swarmは、複数のDockerホストを束ねて一つのクラスタを形成するためのソフトウェアコンポーネントです。Docker 1.11までは、Dockerエンジンとは別のソフトウェアコンポーネントとして配布されていました。
関連記事
- 第28回 Docker Networkingの基礎知識 ソフトウェア定義型時代の到来
今回からDocker環境のネットワーキングに迫ります。ネットワーキングと聞くと、とても難解なイメージがあるかもしれませんが要素技術は非常に重要です。従来の物理システムと異なる点もあるDockerのネットワーキングについて、まずは基本を解説します。 - 第29回 Docker Networkingの基礎知識 標準的なネットワークを理解する
引き続きDocker環境におけるネットワーキングの基礎を解説します。今回は、Dockerでの標準的なネットワークを例に、手順を交えながらその構成がどうなっているのかを理解していきましょう。 - 第15回 1つのDockerコンテナでサービスをたくさん動かすには?(基礎編)
サービスを稼働させる上で、ハイパーバイザ型の仮想化環境とDockerコンテナの環境では大きな違いがあります。まずは基礎知識から解説しましょう。 - 【古賀政純の「攻めのITのためのDocker塾」】バックナンバー
Copyright © ITmedia, Inc. All Rights Reserved.