@第 11 回 クラウドごった煮 ( コンテナ勉強会 )
Docker on Mesos
with OpenVNet
今日の話
Mesos と Marathon を拡張、 OpenVNet と連携させて、
Docker コンテナをマルチテナントで起動する機能等の話。
つまり?
まずはこれを、
つまり?
こんな感じに。
ここにネットワーク機能を適用することもできます。
DNS
DHCP
Security
Group
そもそも素の Docker ネットワーキングはどんなものだった?
▷ 基本的にシングルホスト
▷ 基本的に Linux Networking を色々利用
▷ ポート単位でサービスを expose
▷ NW と直接関係ないかもしれないが、
Docker の思想は 1 コンテナ 1 プロセス
念のため DockerNWing おさらい
最近の傾向
▷ kubernetes などのコンテナ管理と一緒に動かしたら
よさそうな flannel 、 weave とか。
▷ socketplane
最近 Docker が買収したので、標準になっていくのかも。
最近の傾向
Docker 自体が肥大化しすぎて色々反感買ってる面もあり。
Platform を目指している模様。
一方サーバインフラ寄り SDN 界隈では
前からよく聞く話
▷ エッジオーバーレイ
▷ 分散エッジ上でネットワーク機能の仮想化
▷ コンテナに対応しだしたり
( という話は聞くが、何を指して「対応」かはよくわからない )
▷ NeutronAPI が事実上標準に向かってる気がしなくもない
※ ネットワーク仮想化= SDN ではなく、「ネットワーク仮想化は SDN の一部」みたいな感じ。
OpenVNet?
株式会社あくしゅさんの開発している、オープンソースの
ネットワーク仮想化ソフトウェア
▷ wakame-vdc からスピンアウト
▷ Openflow 1.3 と GRE で分散エッジオーバーレイ
▷ 同一セグメントホスト間は MAC2MAC 、 L3 跨ぎは GRE
▷ SecurityGroup 、 DNS 、 DHCP などの NW 機能仮想化も
大体同じカテゴリのもの
▷ 商用だと NSX
▷ midonet
▷ OpenContrail
▷ OpenDaylight の OpenDOVE ( これ今どうなってるの? )
VTN は対象がちょっと違うけど似たようなものかも
▷ ほか
▷ Docker ネットワーキング関連は色々出てきている
▷ 元々高度なネットワーキング専門な SDN 関連プロダクトの
持っている機能はより強力
▷ 組み合わせてみたい
本題
デモをしてみます
この構成を Marathon への json 投入と scale ボタンで作って
みます。
eth0
10.0.100.0/2
4 DHCP
eth0
10.0.100.0/2
4 DHCP
eth1
192.168.0.0/
24
DHCP
同一 IP 帯
(isolated)
結論
これって wakame-vdc が docker 対応したら不要な拡張では…
▷ おそらくそのとおり
▷ でも色々勉強になった。
▷ スケジューラサービス自体の分離には意味があるかも?
最後に
今回の拡張に意味があったかはとりあえず置いておくとして、
vdc のように様々なインフラに跨って必要な全てのリソースを
騙りシステムを騙す ( 語弊の可能性。 DC 自体の仮想化が目的 ) 、
というアプローチは、面白いなと思っています。
ここにはコンテナや OpenFlow をはじめ、今流行ってる技術も
色々採用されていますが、流行るずっと前から明確な目的への
解決策としてそれらの技術やアプローチを選択していることに
ビジョンを感じます。
※ 当日しなかった話 1※
mesos と marathon は、主に以下を改変しています。
▷ mesos.proto にネットワーク情報の構造体を追加
▷ docker.cpp で run した後らへんに vnet-driver の実行
大体これだけです。整理したら github か何かにアップします。
また、 vnet-driver はただのシェルスクリプトで、
▷ marathon に渡された情報に従って veth を作成
▷ OpenVNet の API を実行
を行っています。
※ 当日しなかった話 2※
OpenVNet の API をキックしているだけなので、他のツールに
切り替えることもできますが、そのためには標準の API やモデル
の存在が重要であることがよくわかるので、
NeutronAPI や MD-SAL 偉い、とか思いました。
ただ、 API を平坦化するとプロダクト特有の機能が利用できなくなったりするわけですが、
これに対して ExtensionAPI などまた別のアプローチを聞いたりもするので、面白いところです。
※ 当日しなかった話 3※
Docker と OpenVNet であれこれしている話は、
Qiita のほうで公開しています。
http://qiita.com/qb0c80aE
※ 当日しなかった話 4※
今回はシステムコンテナもどきを対象にしてデモをしました。
アプリケーションコンテナでは、 Docker 等とそれを取り巻く
ツール類が成す形のネットワークのほうが自然な可能性があり、
そこにマシン相当 ( システムコンテナ ) をターゲットにしたよう
な強力なネットワークプロダクトをどう適用できるか、
は考え所だと思っています。例えばセキュリティとか。
知らないだけでもう既に解決されてるかもしれませんが・・。
Thank you

Docker on Mesos with OpenVNet