容器网络之方法论和技术选型

容器技术发展很快,网络逐渐成为瓶颈,遇到的需求和问题:
  • 跨主机的容器互联:很多中间件(jboss/redis/kafka)部署,要求跨主机实现分布式和高可用
  • 容器与外部互联:容器内访问外部的物理数据库;外部服务调用容器中的服务,需要非NAT的IP直通(例如服务治理平台,容器以私有IP注册服务,外部系统以此IP访问容器服务),要求扁平空间,不要多个网络平面。
  • 容器集群不同应用之间的网络隔离和流量限制

解决上述问题的思路:

  • 容器网络构造在一个软件定义的overlay网络中,与物理网络没直接关联;
  • 优点
    • 兼容各种物理环境,物理机/虚机,公有云/私有云
    • 比较容易实现多租户,受二层物理组网限制较少,扩展性好:
      • 不受物理网络vlan 4k限制
      • 随着容器和租户的增多,overlay网络不会导致underlay网络的ARP广播,交换机cam表项不足等问题
  • 缺点
    • 加密解密,封包解包,消耗性能
    • 跟外部打通,需要专门的gateway或者NAT


  • 容器的不同租户网络、host网络,在物理网络的二层/三层做隔离
  • 优点
    • 性能比较好,无风暴解包损耗
    • 可以利用现有的网络技术(vlan,路由器)实现不同网络之间的隔离和互通
  • 缺点
    • 容器数量过多时,如果是二层隔离,需要解决ARP广播,交换机cam表项不足等问题
    • 需要在现有网络设备上做很多配置,特别vlan隔离

     基于上述思想,结合现有的一些工具和技术,常见的解决方案有:

  1.  flannel vxlan,overlay方式
  2. calico,三层隔离,跨子网部署时,如果网关不支持BGP,则需要走ipip tunnel的overlay方式      
  3. ipvlan macvlan,物理二层/三层隔离,目前需要pipework工具在单个节点上配置,仅做了vlan隔离,不解决arp广播和mac nat
  4. swarm native vxlan,跟flannel vxlan类似
  5. neutron sdn,选择就多种了,ml2+ovsplugin,midonet,vlan or vxlan等,都可以,目前了解ovs vxlan的话可以实现arp proxy,mac nat估计还不行
  6. contiv,思科主导,sdn解决方案,可以用纯软的ovs,也可以用ovs+cisco硬件sdn controller
  7. linux bridge+三层交换机:host上 linux bridge 设置为三层交换机的子网网段,容器之间通信走二层交换,容器与外部走三层交换机的网关。
  • 集群规模比较小的情况下,推荐三层交换机的物理组网,第七种方式,ebay目前就是这种方式,简单实用,笔者所在公司也打算用这种方式;
  • 如果要做公有云,只能用vxlan的overlay了,ovs少不了,用neutron选择面比较广;阿里和京东应该都是类似方式;
  • 中等规模,建议考虑ovs的vlan隔离,至于sdn的controller用哪种方案,软的还是硬的,目前openstack社区还没有winner;另外vlan方式下阿里还做很很多额外的工作,例如mac nat,交换机的自动配置之类,这些方面要不要做还是看需求和研发实力。
  • calico也是个挺不错的选择,不少公众号推荐;calico限制需要网关支持BGP,否则需要以ip ip tunnel方式跨网关,性能损耗比较大。笔者公司的网络工程师对于OSPF RIP之类的组网已经赶脚亚历山大,谈起BGP就望而生却了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值