跨主機(jī)Docker容器通信的學(xué)習(xí)
背景
骨折在家找自己的人比較少.
又因?yàn)槌霾蝗ヒ矝](méi)法做運(yùn)動(dòng),就不如將之前沒(méi)學(xué)習(xí)深入的地方學(xué)習(xí)下
先是進(jìn)行Docker 搭建 redis cluster的處理.
當(dāng)時(shí)發(fā)現(xiàn)必須使用 --net=host進(jìn)行.
本來(lái)想嘗試進(jìn)行 overlay的網(wǎng)咯進(jìn)行搭建
當(dāng)然有一個(gè)目的是驗(yàn)證 overlay的性能損耗
結(jié)果使用了很多招都沒(méi)有成功
但是想著至少可以記錄下 跨主機(jī) 容器通信.
第一步學(xué)習(xí)consul
https://www.jb51.net/article/237838.htm
下載與安裝
wget https://releases.hashicorp.com/consul/1.13.3/consul_1.13.3_linux_amd64.zip
unzip consul_1.13.3_linux_amd64.zip
scp consul /usr/bin/
第一臺(tái)機(jī)器執(zhí)行
docker run -d --network host -h consul01 --name=consul01 ?--restart=always -e CONSUL_BIND_INTERFACE=ens192 ?harbor.xxxx.online/xxxx/consul
第臺(tái)機(jī)器執(zhí)行
docker run -d --network host -h consul02 --name=consul02 ?--restart=always -e CONSUL_BIND_INTERFACE=ens192 ?harbor.xxxx.online/xxxx/consul
修改 Docker 與consul通信
第一臺(tái)機(jī)器的修改
注意需要修改 docker 的 /usr/lib/systemd/system/docker.service 配置文件
ExecStart=/usr/bin/dockerd ?-H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --cluster-store consul://10.110.139.194:8500 --cluster-advertise ens192:2376
另外一臺(tái)機(jī)器的修改
ExecStart=/usr/bin/dockerd ?-H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --cluster-store consul://10.110.139.194:8500 --cluster-advertise ens192:2376
注意 還需要增加幾個(gè)條件
--iptables=false \
--live-restore=false \
注意需要重啟
systemctl daemon-reload && systemctl restart docker
創(chuàng)建consul的簡(jiǎn)單集群
主要命令如下:
consul01 節(jié)點(diǎn)不需要做任何操作可以進(jìn)行查看
consul operator ?raft list-peers
另外一個(gè)機(jī)器執(zhí)行命令就可以加入
但是我搞不明白誰(shuí)是主誰(shuí)是從.
consul join 10.110.139.94
然后再查看一下 list 就有了.
consul operator ?raft list-peers
Node ? ? ?ID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Address ? ? ? ? ? ? ?State ? ? Voter ?RaftProtocol
consul02 ?2edd71b2-85dc-6c25-0000-5af80e10318e ?10.110.139.196:8300 ?leader ? ?true ? 3
consul01 ?59e32106-916c-bafc-7d5d-19f19679ac92 ?10.110.139.194:8300 ?follower ?false ?3
創(chuàng)建overlay的網(wǎng)卡
docker network create -d overlay multi_host
基于Kylin銀河麒麟的鏡像進(jìn)行地址連通性檢查
分別再兩臺(tái)機(jī)器上面執(zhí)行命令:
docker run -it --net=multi_host harbor.xxxx.online/xxxx/kylinv10sp2:withFonts /bin/bash
然后執(zhí)行
ip addr
然后可以驗(yàn)證可以互相ping同.
Redis Cluster的驗(yàn)證
我用了很多招,發(fā)現(xiàn)不行...
文章標(biāo)題:跨主機(jī)Docker容器通信的學(xué)習(xí)
文章鏈接:https://www.dianjilingqu.com/602611.html