Docker overlay 网络搭建的方法
作者:nasawz 发布时间:2021-07-21 12:24:16
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@n1 vagrant]# consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=node1 -bind=172.20.20.10 -ui -client 0.0.0.0
n2
[root@n2 vagrant]# consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=node2 -bind=172.20.20.11 -ui -client 0.0.0.0 -join 172.20.20.10
n3
[root@n3 vagrant]# consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=node3 -bind=172.20.20.12 -ui -client 0.0.0.0 -join 172.20.20.10
[root@n1 vagrant]# consul members
Node Address Status Type Build Protocol DC Segment
node1 172.20.20.10:8301 alive server 1.1.0 2 dc1 <all>
node2 172.20.20.11:8301 alive server 1.1.0 2 dc1 <all>
node3 172.20.20.12:8301 alive server 1.1.0 2 dc1 <all>
配置 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。
在命令行中输入 docker network create -d overlay myoverlay
创建一个名为myoverlay的网络,并用 docker network ls
检查docker网络列表
[root@n1 sysconfig]# docker network ls
NETWORK ID NAME DRIVER SCOPE
5a8df7650e34 bridge bridge local
8e574df4fb90 docker_gwbridge bridge local
d69aab5b2621 host host local
7301c62bca4d none null local
[root@n1 sysconfig]# docker network create -d overlay myoverlay
36feac75fb49edcf8920ed39109424b833501268942fb563708aa306fccfb15c
[root@n1 sysconfig]# docker network ls
NETWORK ID NAME DRIVER SCOPE
5a8df7650e34 bridge bridge local
8e574df4fb90 docker_gwbridge bridge local
d69aab5b2621 host host local
36feac75fb49 myoverlay overlay global
7301c62bca4d none null local
登录 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@n2 vagrant]# docker network ls
NETWORK ID NAME DRIVER SCOPE
9f2b7d40a69f bridge bridge local
1d9ee9546c81 docker_gwbridge bridge local
e1f72fa7710c host host local
36feac75fb49 myoverlay overlay global
372109bb13bc none null local
发现myoverlay已经在其中。
同理操作n3
[root@n3 vagrant]# docker network ls
NETWORK ID NAME DRIVER SCOPE
14cf16d37c9b bridge bridge local
ca426545fedb docker_gwbridge bridge local
b57d2f555fa2 host host local
36feac75fb49 myoverlay overlay global
fcb5da0380e4 none null local
启动容器 验证overlay网络
登录n1以myoverlay启动一个busybox的容器
[root@n1 sysconfig]# docker run --network myoverlay busybox
查看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"
}
}
可以看到网络是myoverlay ip
为 10.0.0.2
登录n2myoverlay
启动一个busybox的容器
[root@n2 sysconfig]# docker run --network myoverlay busybox
查看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
进入容器,ping 10.0.0.2
[root@n2 vagrant]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f673ccb5ab32 busybox "sh" 2 minutes ago Up 2 minutes objective_pare
[root@n2 vagrant]# docker exec -ti f673ccb5ab32 /sh
/ # ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: seq=0 ttl=64 time=1.309 ms
64 bytes from 10.0.0.2: seq=1 ttl=64 time=0.535 ms
64 bytes from 10.0.0.2: seq=2 ttl=64 time=1.061 ms
64 bytes from 10.0.0.2: seq=3 ttl=64 time=0.764 ms
^C
--- 10.0.0.2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.535/0.917/1.309 ms
ping 是通的, overlay 网络搭建成功!
来源:https://segmentfault.com/a/1190000015282058


猜你喜欢
- 对于不会给电脑装系统的人,想学习Linux可在虚拟机上安装Linux操作系统进行学习,或者去找网页版的。本文主要介绍如何在VMware Wo
- 重新认识搜索引擎优化SEO在美国的发展比我们中国早很多,关于什么是搜索引擎优化,相信国内的SEO爱好者,已经看过很多个版本。但美国的同行将会
- 为什么我的Free Ad-Supported托管网站不能正常显示呢? 如果你的HTML代码使用的是绝对位置,你的网站将显示在广告幅的右边或者
- 中国雅虎新首页10月10日下午消息,中国雅虎网站今日发布新公告称,推出新版中国雅虎首页。中国雅虎将更加专注互联网基础应用如邮箱、资讯、搜索等
- 本文主要介绍的是在CentOS 7.2安装部署邮件服务器(Postfix)的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:Post
- Internet正以空前的速度深入千家万户,不少公司或个人在网络上建立起主页和站点。公司通过网站发布产品信息、提供服务、寻求商业契机;而个人
- 在默认情况下,我们一般给每个站点的web目录的权限为IIS用户的读取和写入,如图:但是我们现在为了将SQL注入,上传漏洞全部都赶走,我们可以
- 最近我在VMware上面用三台虚拟机搭建了一个hadoop的集群。但是后来发现了一个问题:每次重新打开三台机器的时候,因为主机所连接的网络的
- 打开:require/showimg.php查找:if (!$faceurl || !$user_a[0]&n
- 长尾关键词这个概念现在大家都已经有所了解。在做英文网站优化时,因为受到各种因素的限制(如资源,时间等),我们不应该去追求那些高搜索但是同样高
- Linux下使用pip安装SpeechRecognition经常会看到代码import speechrecognition as sr这类的
- 做站有2年的时间,做过的站加起来应该有200个了吧,每月收入1W左右。看过无数的软文,交换过无数的链接,遇到无数的站长兄弟,回想起来,非常的
- 定义网站产品和网站运营某些类型的网站属于产品驱动型,另外一些网站则可能属于运营驱动型。邮箱属于典型的产品驱动型,比如现在越来越多的用户开始使
- 本文适用于学习服务器知识所讲述的如何在virtualbox上安装centos。准备已经安装好的virtualbox虚拟机已经下载好的cent
- 熟悉Windows Server 2003的朋友,相信对RMS(权限管理服务)都不会陌生,它能够有效的保护我们的数字资产在相应授权范围之外不
- 做网站一直给绝大多数网民以很方便、很便宜的印象,包括很多IT领域的从业者也这么认为。其实不管670万,还是3250万都是完全可能的,关键最后
- 本来只想算算花了多少钱,谁知写得头晕,写太多了。03年工作后开始接触网络,说来惭愧,因为俺是学医的,所以只顾埋头苦读,不闻窗外事,所以大学期
- 域控制器是公司网络管理的核心,它出现故障往往会导致全网用户计算机的登录失败。不过,大家在建立域控制器时往往忽视了对DNS的设置,致使域中的D
- 本文去年12月11日网易首页随着自主研发的搜索引擎“有道”正式版问世,首页也做了相应调整;今年的3月底腾讯在毫无消息的前提下更换了新首页;今
- 对于很多WordPress新手来说,不懂任何代码的情况下去瞎改WordPress主题,得出的效果往往会出现语法错误之类的东西或效果不尽人意。