博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker overlay 网络搭建
阅读量:5996 次
发布时间:2019-06-20

本文共 6070 字,大约阅读时间需要 20 分钟。

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@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 membersNode   Address            Status  Type    Build  Protocol  DC   Segmentnode1  172.20.20.10:8301  alive   server  1.1.0  2         dc1  
node2 172.20.20.11:8301 alive server 1.1.0 2 dc1
node3 172.20.20.12:8301 alive server 1.1.0 2 dc1

配置 docker

登录n1

修改 /etc/sysconfig/docker-network

# /etc/sysconfig/docker-networkDOCKER_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 lsNETWORK ID          NAME                DRIVER              SCOPE5a8df7650e34        bridge              bridge              local8e574df4fb90        docker_gwbridge     bridge              locald69aab5b2621        host                host                local7301c62bca4d        none                null                local[root@n1 sysconfig]# docker network create -d overlay myoverlay36feac75fb49edcf8920ed39109424b833501268942fb563708aa306fccfb15c[root@n1 sysconfig]# docker network lsNETWORK ID          NAME                DRIVER              SCOPE5a8df7650e34        bridge              bridge              local8e574df4fb90        docker_gwbridge     bridge              locald69aab5b2621        host                host                local36feac75fb49        myoverlay           overlay             global7301c62bca4d        none                null                local

登录 n2

修改 /etc/sysconfig/docker-network

# /etc/sysconfig/docker-networkDOCKER_NETWORK_OPTIONS=--cluster-store=consul://172.20.20.11:8500 --cluster-advertise=172.20.20.11:2376

这里不用再次新建立myoverlay网络了,因为他们是一个集群。直接检查网络列表

[root@n2 vagrant]# docker network lsNETWORK ID          NAME                DRIVER              SCOPE9f2b7d40a69f        bridge              bridge              local1d9ee9546c81        docker_gwbridge     bridge              locale1f72fa7710c        host                host                local36feac75fb49        myoverlay           overlay             global372109bb13bc        none                null                local

发现myoverlay已经在其中。

同理操作n3

[root@n3 vagrant]# docker network lsNETWORK ID          NAME                DRIVER              SCOPE14cf16d37c9b        bridge              bridge              localca426545fedb        docker_gwbridge     bridge              localb57d2f555fa2        host                host                local36feac75fb49        myoverlay           overlay             globalfcb5da0380e4        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 psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                  NAMESf673ccb5ab32        busybox             "sh"                     2 minutes ago       Up 2 minutes                                                               objective_pare[root@n2 vagrant]# docker exec -ti f673ccb5ab32 /sh/ # ping 10.0.0.2PING 10.0.0.2 (10.0.0.2): 56 data bytes64 bytes from 10.0.0.2: seq=0 ttl=64 time=1.309 ms64 bytes from 10.0.0.2: seq=1 ttl=64 time=0.535 ms64 bytes from 10.0.0.2: seq=2 ttl=64 time=1.061 ms64 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 lossround-trip min/avg/max = 0.535/0.917/1.309 ms

ping 是通的, overlay 网络搭建成功!

转载地址:http://hwhlx.baihongyu.com/

你可能感兴趣的文章
[华为机试练习题]9.坐标移动
查看>>
April Fools Day Contest 2016 B. Scrambled
查看>>
iOS开发--多线程
查看>>
网易游戏2015年暑期实习生面试经历-游戏研发project师
查看>>
Celery的实践指南
查看>>
Shell中的while循环【转】
查看>>
Linux下安装memcached
查看>>
qt介绍
查看>>
error
查看>>
ASP.NET MVC下使用AngularJs语言(一):Hello your name
查看>>
[书目20111003]Ivor Horton's Beginning Java, Java 7 Edition
查看>>
centos使用yum安装软件的时候出现了undefined symbol: CRYPTO_set_locking_callback
查看>>
android studio下生成jni头文件
查看>>
最简单的Android教程之自定义控件
查看>>
虚拟 router 原理分析- 每天5分钟玩转 OpenStack(101)
查看>>
使用linux的shell脚本实现在当前行重复动态显示时间等字符串信息(不另起新行)...
查看>>
myeclipse开发代码颜色搭配保护视力
查看>>
iOS开发-数据存储NSCoder
查看>>
SQL Server 存储过程【转】
查看>>
localstorage和sessionstorage上手使用记录
查看>>