Docker overlay 网络搭建的方法
Overlay网络是指通过在现有网络上叠加一个软件定义的逻辑网络,最大程度的保留原有网络,通过定义其上的逻辑网络,实现业务逻辑,解决原有数据中心的网络问题。
快速开始
Docker跨主机网络方案
docker原生
- overlay
- macvlan
第三方方案
- flannel
- weave
- calico
之前介绍了Consul搭建集群,所以在此直接选用docker自带的overlay方案来做,和Consul完美结合。
环境准备
参考之前的一篇《Consul搭建集群》准备三台虚机。
ip
n1
172.20.20.10
n2
172.20.20.11
n3
172.20.20.12
在这三台虚机上启动consul并创建集群
n1
[root@n1vagrant]#consulagent-server-bootstrap-expect3-data-dir/etc/consul.d-node=node1-bind=172.20.20.10-ui-client0.0.0.0
n2
[root@n2vagrant]#consulagent-server-bootstrap-expect3-data-dir/etc/consul.d-node=node2-bind=172.20.20.11-ui-client0.0.0.0-join172.20.20.10
n3
[root@n3vagrant]#consulagent-server-bootstrap-expect3-data-dir/etc/consul.d-node=node3-bind=172.20.20.12-ui-client0.0.0.0-join172.20.20.10
[root@n1vagrant]#consulmembers NodeAddressStatusTypeBuildProtocolDCSegment node1172.20.20.10:8301aliveserver1.1.02dc1node2172.20.20.11:8301aliveserver1.1.02dc1 node3172.20.20.12:8301aliveserver1.1.02dc1
配置docker
登录n1
修改/etc/sysconfig/docker-network为
#/etc/sysconfig/docker-network DOCKER_NETWORK_OPTIONS=--cluster-store=consul://172.20.20.10:8500--cluster-advertise=172.20.20.10:2376
其中ip部分为consul容器节点的ip。
在命令行中输入dockernetworkcreate-doverlaymyoverlay创建一个名为myoverlay的网络,并用dockernetworkls检查docker网络列表
[root@n1sysconfig]#dockernetworkls NETWORKIDNAMEDRIVERSCOPE 5a8df7650e34bridgebridgelocal 8e574df4fb90docker_gwbridgebridgelocal d69aab5b2621hosthostlocal 7301c62bca4dnonenulllocal [root@n1sysconfig]#dockernetworkcreate-doverlaymyoverlay 36feac75fb49edcf8920ed39109424b833501268942fb563708aa306fccfb15c [root@n1sysconfig]#dockernetworkls NETWORKIDNAMEDRIVERSCOPE 5a8df7650e34bridgebridgelocal 8e574df4fb90docker_gwbridgebridgelocal d69aab5b2621hosthostlocal 36feac75fb49myoverlayoverlayglobal 7301c62bca4dnonenulllocal
登录n2
修改/etc/sysconfig/docker-network为
#/etc/sysconfig/docker-network DOCKER_NETWORK_OPTIONS=--cluster-store=consul://172.20.20.11:8500--cluster-advertise=172.20.20.11:2376
这里不用再次新建立myoverlay网络了,因为他们是一个集群。直接检查网络列表
[root@n2vagrant]#dockernetworkls NETWORKIDNAMEDRIVERSCOPE 9f2b7d40a69fbridgebridgelocal 1d9ee9546c81docker_gwbridgebridgelocal e1f72fa7710chosthostlocal 36feac75fb49myoverlayoverlayglobal 372109bb13bcnonenulllocal
发现myoverlay已经在其中。
同理操作n3
[root@n3vagrant]#dockernetworkls NETWORKIDNAMEDRIVERSCOPE 14cf16d37c9bbridgebridgelocal ca426545fedbdocker_gwbridgebridgelocal b57d2f555fa2hosthostlocal 36feac75fb49myoverlayoverlayglobal fcb5da0380e4nonenulllocal
启动容器验证overlay网络
登录n1以myoverlay启动一个busybox的容器
[root@n1sysconfig]#dockerrun--networkmyoverlaybusybox
查看busybox容器详情,在最底部有网络相关的信息
"Networks":{ "myoverlay":{ "IPAMConfig":null, "Links":null, "Aliases":[ "e7d558b35607" ], "NetworkID":"36feac75fb49edcf8920ed39109424b833501268942fb563708aa306fccfb15c", "EndpointID":"6b1c975847b506a151940893e3ac189a7053cb34dda4ec2b5797c93f6eeb3534", "Gateway":"", "IPAddress":"10.0.0.2", "IPPrefixLen":24, "IPv6Gateway":"", "GlobalIPv6Address":"", "GlobalIPv6PrefixLen":0, "MacAddress":"02:42:0a:00:00:02" } }
可以看到网络是myoverlayip为10.0.0.2
登录n2myoverlay启动一个busybox的容器
[root@n2sysconfig]#dockerrun--networkmyoverlaybusybox
查看busybox容器详情,在最底部有网络相关的信息
"Networks":{ "myoverlay":{ "IPAMConfig":null, "Links":null, "Aliases":[ "f673ccb5ab32" ], "NetworkID":"36feac75fb49edcf8920ed39109424b833501268942fb563708aa306fccfb15c", "EndpointID":"39f8e9e098ce3faf039aa60e275ec90428f86c6378f5b4c54d8682741e71673f", "Gateway":"", "IPAddress":"10.0.0.3", "IPPrefixLen":24, "IPv6Gateway":"", "GlobalIPv6Address":"", "GlobalIPv6PrefixLen":0, "MacAddress":"02:42:0a:00:00:03" } }
这个busybox的ip为10.0.0.3
进入容器,ping10.0.0.2
[root@n2vagrant]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f673ccb5ab32busybox"sh"2minutesagoUp2minutesobjective_pare [root@n2vagrant]#dockerexec-tif673ccb5ab32/sh /#ping10.0.0.2 PING10.0.0.2(10.0.0.2):56databytes 64bytesfrom10.0.0.2:seq=0ttl=64time=1.309ms 64bytesfrom10.0.0.2:seq=1ttl=64time=0.535ms 64bytesfrom10.0.0.2:seq=2ttl=64time=1.061ms 64bytesfrom10.0.0.2:seq=3ttl=64time=0.764ms ^C ---10.0.0.2pingstatistics--- 4packetstransmitted,4packetsreceived,0%packetloss round-tripmin/avg/max=0.535/0.917/1.309ms
ping是通的,overlay网络搭建成功!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。