Docker overlay覆盖网络及VXLAN
1) 构建 Swarm
首先需要将两台主机配置为包含两个节点的 Swarm 集群。接下来会在 node1 节点上运行 docker swarm init 命令使其成为管理节点,然后在 node2 节点上运行 docker swarm join 命令来使其成为工作节点。
在 node1 节点上运行下面的命令。
$ docker swarm init \
–advertise-addr=172.31.1.5 \
–listen-addr=172.31.1.5:2377
在 node2 上运行下面的命令。
$ docker swarm join \
–token SWMTKN-1-0hz2ec…2vye \
172.31.1.5:2377
现在就已经创建好了包含管理节点 node1 和工作节点 node2 两个节点的 Swarm 集群了。
2) 创建新的覆盖网络
创建一个名为 uber-net 的覆盖网络。
在 node1(管理节点)节点上运行下面的命令。
$ docker network create -d overlay uber-net
刚刚创建了一个崭新的覆盖网络,能连接 Swarm 集群内的所有主机,并且该网络还包括一个 TLS 加密的控制层!如果还想对数据层加密的话,只需在命令中增加 -o encrypted 参数。
可以通过 docker network ls 命令列出每个节点上的全部网络。
如果在 node2 节点上运行 docker network ls 命令,就会发现无法看到 uber-net 网络。这是因为只有当运行中的容器连接到覆盖网络的时候,该网络才变为可用状态。这种延迟生效策略通过减少网络梳理,提升了网络的扩展性。
3) 将服务连接到覆盖网络
现在覆盖网络已经就绪,接下来新建一个 Docker 服务并连接到该网络。Docker 服务会包含两个副本(容器),一个运行 node1 节点上,一个运行在 node2 节点上。这样会自动将 node2 节点接入 uber-net 网络。
在 node1 节点上运行下面的命令。
Linux 示例如下。
$ docker service create –name test \
–network uber-net \
–replicas 2 \
ubuntu sleep infinity
该命令创建了名为 test 的新服务,连接到了 uber-net 这个覆盖网络,并且还基于指定的镜像创建了两个副本(容器)。在两个示例中,均在容器中采用 sleep 命令来保持容器运行,并在休眠结束后退出该容器。
由于运行了两个副本(容器),而 Swarm 包含两个节点,因此每个节点上都会运行一个副本。
可以通过 docker service ps 命令来确认上面的操作。
$ docker service ps test
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
66源码网 » Docker overlay覆盖网络及VXLAN
