隙あらば寝る

うぇぶのかいしゃではたらくえんじにあがかいています

docker overlay network driver を試してみた

複数ホストのネットワーク(overlay)が使い物になってきたそうなので試してみた。

前提

  • docker 1.10 を利用
  • docker 自体は以前から使ったことがある

試してわかったこと

  • docker network create でマルチホスト(overlay)なネットワークが定義できる(vxlanらしいが、細かいところは隠蔽される)
  • docker run 時に --net でユーザ定義のネットワークが指定できるようになった
  • ネットワーク定義を共有するためには consul/etcd/zookeeperのいずれかの kvs を用意する必要がある
    • docker engine の起動オプションに kvs の url を教える事で設定する
  • overlay で接続されたホスト同士は --name の名前で名前解決できる
    • link でがんばるよりも便利なのは間違いない

これから考えないと行けないこと

  • ネットワークの可用性
    • 1ホストが黙って死んだ場合とかどうなるの?
  • kvs の可用性担保
    • kvs が使えない場合ネットワーク死なない?

ハマった所

  • 最初 ubuntu 2 台で動かそうとしたが、ネットワーク定義はできたがホスト跨ぎの通信ができなかった
    • overlay の動作にかなり新しいカーネルが必要らしいので諦めた
    • 公式ドキュメント通り docker-machine で試したら問題なかった
  • ネットワークとは関係がないが、以下の issue で端末に余計なメッセージが出まくるのが気になる