为了账号安全,请及时绑定邮箱和手机立即绑定

容器网络---overlay

标签:
Docker
  • 安装consul

  • 宿主机的hostname不同

  • 内核大于3.16

角色

hostnameiprole
ubuntu1192.168.31.41server
ubuntu4192.168.31.44client
ubuntu5192.168.31.45client

安装consul

源代码:https://github.com/hashicorp/consul
二进制:https://www.consul.io/downloads.html
推荐下载二进制文件,因为源码安装需要安装golang,需要处理依赖,稍显麻烦

unzip -o consul.zip  
mv consul /usr/loca/bin && chmod a+x /usr/local/bin/consul

启动服务

# server  nohup consul agent -server -bootstrap  -data-dir=/tmp/consul -node=server1 -bind=192.168.31.41 &  

# client  nohup consul agent -data-dir /tmp/consul -node=slave1 -bind=192.168.31.44 &  
nohup consul agent -data-dir /tmp/consul -node=slave2 -bind=192.168.31.45 &

加入集群(在ubuntu1上执行)

consul join 192.168.31.44  consul join 192.168.31.45

查看集群信息

root@ubuntu41:~# consul membersNode     Address             Status  Type    Build  Protocol  DC   Segment
server1  192.168.31.41:8301  alive   server  1.0.0  2         dc1  <all>
slave1   192.168.31.44:8301  alive   client  1.0.0  2         dc1  <default>
slave2   192.168.31.45:8301  alive   client  1.0.0  2         dc1  <default>
root@ubuntu41:~#

在slave1上创建overlay网络

root@ubuntu44:~# docker network create -d overlay ov_net1a8bed8f7616afdd5e7f29b2d77efefa7f9c42384c13b6ee59f68e1bcc068f494
root@ubuntu44:~# docker network lsNETWORK ID          NAME                DRIVER              SCOPE5a2a6818db8f        bridge              bridge              local               
2ccea5f4adc6        host                host                local               
5addb148f292        none                null                local               
a8bed8f7616a        ov_net1             overlay             global              
root@ubuntu44:~#

网络信息会存入consul数据库中,因此在slave2上也可以发现ov_net1

root@ubuntu45:~# docker network lsNETWORK ID          NAME                DRIVER              SCOPE
f60ad948e9e1        bridge              bridge              local               
2ccea5f4adc6        host                host                local               
5addb148f292        none                null                local               
a8bed8f7616a        ov_net1             overlay             global              
root@ubuntu45:~#

分别在slave1和slave2上创建容器,都接入ov_net1

在slave1上创建bbox1,指定ov_net1

root@ubuntu44:~# docker run -tid --name bbox1 --network ov_net1 busybox5ce240275b715515deac792174ee9e778646f6ef94142958ec0ba06e2a67d45a
root@ubuntu44:~# docker psCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES5ce240275b71        busybox             "sh"                11 seconds ago      Up 9 seconds                            bbox1
root@ubuntu44:~# docker exec bbox1 ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue 
    link/ether 02:42:0a:00:00:02 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.2/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:aff:fe00:2/64 scope link 
       valid_lft forever preferred_lft forever15: eth1@if16: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.2/16 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe12:2/64 scope link 
       valid_lft forever preferred_lft forever

在slave2上创建bbox2,指定ov_net1

root@ubuntu45:~# docker run -tid --name bbox2 --network ov_net1 busyboxe53651000387cd6556c61296fdf87632506c9a6018b19641a6da81b3a3856e06
root@ubuntu45:~# docker psCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
e53651000387        busybox             "sh"                3 seconds ago       Up 2 seconds                            bbox2
root@ubuntu45:~# docker exec bbox2 ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue 
    link/ether 02:42:0a:00:00:03 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.3/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:aff:fe00:3/64 scope link 
       valid_lft forever preferred_lft forever15: eth1@if16: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.2/16 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe12:2/64 scope link 
       valid_lft forever preferred_lft forever

查看不同主机上的容器是否可以通信

bbox1 ping bbox2

root@ubuntu44:~# docker exec bbox1 ping -c 3 bbox2PING bbox2 (10.0.0.3): 56 data bytes64 bytes from 10.0.0.3: seq=0 ttl=64 time=0.458 ms64 bytes from 10.0.0.3: seq=1 ttl=64 time=0.435 ms64 bytes from 10.0.0.3: seq=2 ttl=64 time=0.389 ms

--- bbox2 ping statistics ---3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.389/0.427/0.458 ms

bbox2 ping bbox1

root@ubuntu45:~# docker exec bbox2 ping -c 3 bbox1PING bbox1 (10.0.0.2): 56 data bytes64 bytes from 10.0.0.2: seq=0 ttl=64 time=0.370 ms64 bytes from 10.0.0.2: seq=1 ttl=64 time=0.440 ms64 bytes from 10.0.0.2: seq=2 ttl=64 time=0.381 ms

--- bbox1 ping statistics ---3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.370/0.397/0.440 ms



作者:xwlan
链接:https://www.jianshu.com/p/7f32ca1442a8


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
50
获赞与收藏
175

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消