LoginSignup
1
1

More than 3 years have passed since last update.

Docker Network メモ

Last updated at Posted at 2019-08-22

クソメモです。
ある程度情報そろったらきれいにします。。。

参考

https://tech.uzabase.com/entry/2017/08/07/172411
https://tech.uzabase.com/entry/2017/08/23/175813
https://docs.docker.com/network/overlay/
https://docs.docker.com/network/network-tutorial-overlay/

Docker マルチホストネットワーク

1. Docker Swarm mode (swarm service network?)

[メモ]
古いバージョンのSwarmだとこの機能を使用するため、分散KVS(etcd,consul,zookeper)が必要であったが、新しめのバージョンではDockerに機能が組み込まれているため、不要になった
 -> いつのバージョンから??

SwarmにてOverlay Networkを利用することでコンテナのマルチホスト間通信を実現する

Breakdown

overlay Networkにて使用されるポート

  • TCP 2377 -> クラスタ管理通信
  • TCP/UDP 7946 -> ノード間通信
  • UDP 4789 -> overlay Network通信

セキュリティ

管理用通信はすべてAESにより暗号化されている

overlay network作成時に"--opt encrypted"オプションを付与してあげることでアプリケーション通信(overlay Network通信?)もIPSECにより暗号化される。(Dockerノード間でIPSECトンネリング)
IPSECも結局AESアルゴリズムにより暗号化されている
 -> ネットワークパフォーマンスに影響する可能性があるため、テストはマスト

おまけ: encryptedしているoverlay networkはwindowsに対応していない

docker swarmを初期構築およびworkerとしてswarmに追加した際に以下のネットワークが作成される

  • ingress
    • swarmの管理用トラフィックの送受信用
    • swarm serviceを構築時、ネットワークを選択しない場合はデフォルトでこれに接続される
  • docker_gwbridge
    • Swarmに関係する個々のdockerデーモン同士が通信する際に利用する
    • ingressをdockerホストのIFに接続する
    • これによりswarm manager/worker間の通信が可能?

overlay networkはserviceにて要求されたタイミングで自動で作成される
-> managerだけで定義すればOK

Control traffic と Data trafficを分割

swarmに登録する際に --advertise-addrおよび--datapath-addrを分ける

2. Overalay Network 構築ツールを使う

flannel -> もともとk8sにてマルチホストネットワークを実現する機能だった

3. 手動で構築

分散KVSとdocker network create -d overlay コマンドを使って構築する

Tutorial

manager
# docker network create --driver=overlay --attachable test-net
wpwhkxk5ovxfheq0z37fi6t0p
manager
# docker run -it --name alpine1 --network test-net alpine
worker1
# docker network ls
managerで作成したnetworkは表示されない

# docker run -dit --name alpine2 --network test-net alpine

# docker network ls
managerで作成したnetworkが表示される
manager
# ping alpine2
PING alpine2 (10.0.3.10): 56 data bytes
64 bytes from 10.0.3.10: seq=0 ttl=64 time=0.679 ms
64 bytes from 10.0.3.10: seq=1 ttl=64 time=0.408 ms
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1