【docker系列】解决阿里云多主机服务器,docker overlay 跨主机网络通信环境

实现docker 容器跨主机互通。 推荐使用 overlay 网络类型。

什么是overlay网络

overlay网络驱动程序会在多个Docker守护进程主机之间创建一个分布式网络。这个网络位于特定于主机的网络之上,允许连接到它的容器(包括群集服务容器)安全地通信。Docker透明地处理每个包与正确的Docker守护进程主机和正确的目标容器之间的路由。

当你初始化一个群或加入一个Docker主机到一个现有的群,将在该Docker主机上创建两个新网络

  • 称为ingress的overlay网络,用于传递集群服务的控制或是数据消息,若在创建swarm服务时没有指定连接用户自定义的overlay网络,将会加入到默认的ingress网络。
  • 一个名为的桥接网络docker_gwbridge,它将各个Docker守护程序连接到该集群中的其他守护程序。

可以使用docker network create创建自定义的overlay网络,容器以及服务可以加入多个网络,只有同一网络中的容器可以相互交换信息,可以将单一容器或是swarm服务连接到overlay网络中。

 

环境:
华东二区(上海)二台为:11.11.11.11 和  11.11.11.22

华东一区(杭州)一台为:11.11.11.33

在 搭建 阿里云dcoker 跨主机通信前。已在物理机集群上使用 docker swarm + overlay 成功解决了跨主机访问的问题。 本以为直接在阿里云上,再搭一次,应该不会有什么问题。 可事与愿违,最终无法在 阿里云集群服务器上,搭建docker 跨主机互通。

然后各种找资料, 使用了 consul + overlay ,也无法互通。

最后终于找到答案:


阿里云售后工程师 :    您好,vpc网络不支持自建vxlan,跟底层有冲突。

不推荐您自建集群,一是难度很高花费时间很大,二是自建有很多兼容性问题。而且自建的容器集群没有阿里云容器服务官方技术支持,只能自己在网上找资料解决。
建议您考虑用阿里云提供的容器服务来搭建集群,容器服务本身是免费的,只是集群关联的云资源是付费的,您可以建个免费的集群,把现有的ECS加到集群的节点里面直接使用,省去了您搭建、调试集群的步骤。  


截图:
在这里插入图片描述

阿里员工 明确回答:vpc网络不支持的自建vxlan, 而docker overlay用了vxlan!

另外其他各大云服务器应该也是不行,有人测过腾讯云服务器也不行(这个我没验证!)。

docker swarm集群可以使用阿里云提供的容器服务(阿里云容器服务提供了docker swarm或k8s的集群服务),或者自己机房搭建!
至于自建k8s还没弄过暂时不清楚。

到此,我本以为,自建应该束手无策了。

但是,无意中,看到了阿里云一篇内网的 说明:
 

如果两台同地域的ECS实例之间需要传输数据,建议使用内网连接。云服务器ECS与云数据库、负载均衡以及对象存储之间也可以使用内网相互连接使用。

云服务器ECS内网间,非I/O优化的实例为千兆共享带宽,I/O优化的实例为万兆或25G共享带宽。由于是共享网络,因此无法保证带宽速度是不变的。

对于内网中的ECS实例:

  • ECS实例的网络类型、所属账号、地域、安全组等都会影响内网通信。具体信息,如下表所示。
     
    网络类型 所属账号 地域 安全组 如何实现内网互通
    VPC(同一VPC) 同一账号或不同账号 同一地域 同一安全组 默认互通,也可以实现安全组内网络隔离。详情请参见安全组内网络隔离
    不同安
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值