资讯专栏INFORMATION COLUMN

Docker overlay 网络搭建

Xufc / 2470人阅读

摘要:快速开始跨主机网络方案原生第三方方案之前介绍了搭建集群,所以在此直接选用自带的方案来做,和完美结合。直接检查网络列表发现已经在其中。

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 members
Node   Address            Status  Type    Build  Protocol  DC   Segment
node1  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-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://www.ucloud.cn/yun/27355.html

相关文章

  • docker 1.12 的服务自动发现

    摘要:介绍的集群的自动发现有两种方式与本文使用的是的方式准备安装以上版本初始化集群创建一个名为的网络开放端口初始化集群部份可看我之前的博客使用搭建多主机集群创建网络查看当前的网络也是一个网络可以跨主机通信本教程会创建一个新的创建网络 介绍 docker 1.12 的swarm 集群的自动发现有两种方式, virtual IP address (VIP) 与 DNS round-robin, ...

    ygyooo 评论0 收藏0
  • Docker Swarm介绍

    摘要:后续将其他节点加入集群都会用到这个值将节点加入集群查看节点信息相关命令创建服务更新服务删除服务减少服务实例增加服务实例查看所有服务查看服务的容器状态查看服务的详细信息。前言本篇是Docker第十三篇,Docker的使用至此就介绍完成,接下来继续Kubernetes。Docker系列文章:为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷Dockerfi...

    番茄西红柿 评论0 收藏2637
  • Prometehus自动发现Docker Swarm Overlay网络中的容器

    摘要:原文地址介绍如何使用的机制,自动发现并抓取网络中的容器所提供的指标。我们需要一种动态发现容器的方法。使用的机制,半自动的发现容器。文章最开始说到的半自动就是这个意思,我们得事先知道记录有哪些,然后让去发现这些记录背后对应的容器有哪些。 原文地址 介绍如何使用Prometheus的dns service discovery机制,自动发现并抓取Docker swarm overlay网络中...

    wangtdgoodluck 评论0 收藏0
  • 想用好 Docker ,你不能错过这些

    摘要:阿里云的容器服务采用的是的模式,集成了阿里云的一些基础服务日志监控存储等,在调度等方面做了很多优化,你也可以使用看看。容器服务提供了针对阿里云的的插件,容器之间的数据包不需要封装操作,性能几乎和内两台通信性能一样。 Docker 引起了交付方式的变革,从交付代码和文档变成交付Docker镜像乃至交付编排模板。容器服务让我们可以专注应用本身功能的开发,而无需关注基础设施、应用部署、管理等...

    Elle 评论0 收藏0
  • 想用好 Docker ,你不能错过这些

    摘要:阿里云的容器服务采用的是的模式,集成了阿里云的一些基础服务日志监控存储等,在调度等方面做了很多优化,你也可以使用看看。容器服务提供了针对阿里云的的插件,容器之间的数据包不需要封装操作,性能几乎和内两台通信性能一样。 Docker 引起了交付方式的变革,从交付代码和文档变成交付Docker镜像乃至交付编排模板。容器服务让我们可以专注应用本身功能的开发,而无需关注基础设施、应用部署、管理等...

    blankyao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<