docker multi host networkを構成しようとしたが、うまくいかなかった
検証環境でmulti host networkを構築しようとしたら、結構厄介だったのでペンディングとした
環境
- CentOS 8
- docker 20.10.21
やりたいことと条件
- dockerのマルチホストネットワークでコンテナを接続する
- etcdを使用
- swarmは使わない
手順
etcdの起動
取り急ぎdocker上でetcdを起動する
IP="192.168.1.99" etcd \ --name=etcd-1 \ --data-dir=./etcd-data \ --advertise-client-urls http://${IP}:2379 \ --listen-client-urls http://${IP}:2379 \ --listen-peer-urls http://${IP}:2380 \ --initial-advertise-peer-urls http://${IP}:2380 \ --initial-cluster etcd-1=http://${IP}:2380 \ --initial-cluster-token my-etcd-token \ --initial-cluster etcd-1=http://${IP}:2380,etcd-2=http://${IP}:2382 \ --initial-cluster-state new
docker daemonの起動オプションの修正
こんな感じ
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H fd:// --containerd=/run/containerd/containerd.sock --cluster-store=etcd://192.168.1.99:2379 --cluster-advertise=0.0.0.0:2376
詰まったこと
docker network create -d overlay testnetが失敗する
Error response from daemon: error getting pools config from store: could not get pools config from store: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint.
deprecated?
docker info
で
WARNING: node discovery and overlay networks with an external k/v store (cluster-advertise, cluster-store, cluster-store-opt) are deprecated and will be removed in a future release.
と出てくる。素直にswarmに切り替えるべきか