Docker 创建swarm overlay网络

女生的网名这么多〃 提交于 2019-11-27 03:38:38

依赖

  • 准备三台虚拟机vm1,vm2,vm3。三台机器在同一个eth中。
  • 操作系统:CentOS 7.6
  • 安装Docker(点击)

更改hostname

#vm1
hostnamectl set-hostname vm1
service docker restart
#vm2
hostnamectl set-hostname vm2
service docker restart
#vm3
hostnamectl set-hostname vm3
service docker restart

查看hostname

service node ls

结果

ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
brjg2ltw1sv4dihlxjr6tkojp *   vm1                 Ready               Active              Leader              19.03.1
7eawdhzcvb1vx2gj7nr3fuge5     vm2                 Ready               Active                                  19.03.1
sp8taco3e5qivv26dy8a0jm57     vm3                 Ready               Active                                  19.03.1

创建overlay网络

在vm1上创建overlay网络,vm2和vm3上面都可以访问。attachable参数开始container访问权限,默认只可被service使用。

docker network create -d overlay --attachable mongo-overlay

vm1,vm2,vm3关闭防火墙

service iptables stop
service firewalld stop

vm1 作为主节点(manager node),其他节点要加入overlay网络只需要获取这个节点的token然后加入即可(worker node)。
主节点上执行:

docker swarm init

启动成功显示如下:

Swarm initialized: current node (brjg2ltw1sv4dihlxjr6tkojp) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-4hj1cuiz76i7jkw5uwpiomi4kulkrfulcan51v6mz5y88orv8n-65o0wega86chw0nreghmtofw1 172.169.18.28:2377
    
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

根据vm1的提示命令,在vm2和vm3上加入overlay网络

 docker swarm join --token SWMTKN-1-4hj1cuiz76i7jkw5uwpiomi4kulkrfulcan51v6mz5y88orv8n-65o0wega86chw0nreghmtofw1 172.169.18.28:2377

显示

This node joined a swarm as a worker.

查看node信息

docker node ls

结果如下 Id 就是node名称

ID                            HOSTNAME                STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
7eawdhzcvb1vx2gj7nr3fuge5     localhost.localdomain   Ready               Active                                  19.03.1
brjg2ltw1sv4dihlxjr6tkojp *   localhost.localdomain   Ready               Active              Leader              19.03.1
sp8taco3e5qivv26dy8a0jm57     localhost.localdomain   Ready               Active                                  19.03.1

测试overlay网络连通性

在vm1上运行mongorocks manager

docker run -d --name=mongorocks-1 \
 --hostname=mongorocks-1 \
 --network=mongo-overlay \
 --restart=always \
 -p 27017:27017 \
 -v /root/volumns/mongorocks/db:/data/db 
 -v /etc/localtime:/etc/localtime \
percona/percona-server-mongodb:3.4 \
 --storageEngine=rocksdb --dbpath=/data/db \
 --rocksdbCacheSizeGB=1   \
 --rocksdbCompression=snappy   \
 --rocksdbMaxWriteMBPerSec=1024   \
 --rocksdbCrashSafeCounters=false   \
 --rocksdbCounters=true   \
 --rocksdbSingleDeleteIndex=false

参数解析:

  • container加入overlay网络:–network=mongo-overlay

在vm3上通过刚刚建立的overlay网络测试连通性。

docker pull debian:latest
docker run --network=mongo-overlay -it debian:latest ping mongorocks-1

显示结果

64 bytes from mongorocks-1.mongo-overlay (10.0.1.2): icmp_seq=1 ttl=64 time=0.494 ms
64 bytes from mongorocks-1.mongo-overlay (10.0.1.2): icmp_seq=2 ttl=64 time=1.05 ms
64 bytes from mongorocks-1.mongo-overlay (10.0.1.2): icmp_seq=3 ttl=64 time=1.19 ms
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!