Pipework、Weave、Flannel各自的优势和区别


大家能否谈谈涉及Docker网络的如Pipework、Weave、Flannel。这些东东,有什么区别,各有什么优势,该如何选择?
已邀请:

难易 - 华为杭州研究院PaaS开发者

赞同来自: duobei wangzi19870227 nicole wisen root2000xyz sealinger更多 »


Weave的思路

deployment.png

在每个宿主机上布置一个特殊的route的容器,不同宿主机的route容器连接起来。 route拦截所有普通容器的ip请求,并通过udp包发送到其他宿主机上的普通容器。 这样在跨机的多个容器端看到的就是同一个扁平网络。 weave解决了网络问题,不过部署依然是单机的。

flannel的思路

packet-01.png

flannel和openvswitch 思路基本一致,就是当Docker在宿主机上创建一个网桥的时候,用自己的网桥替代它。

flannel是用软的udp来包装ip包,OpenVSwitch用的是sdn。

flannel从中心化的etcd里面读取配置信息,给所有宿主机的网桥分配ip。

pipework的思路

这篇讲的比较好

http://www.infoq.com/cn/articl ... ctice

pipework是一个单机的工具,组合了brctl等工具,你可以认为pipework解决的是宿主机上的设置容器的虚拟网卡、网桥、ip等,可以配合其他网络使用。

---

几方面的优势和劣势,和你目前的环境需求有关,
如果容器数量不多,想简单的组一个大的3层网络,可以考虑weave
如果容器数量很多,而且你们的环境复杂,需要多个子网,可以考虑open vswitch或者fannel

bnuhero - 读书喝茶踢球写程序

赞同来自: yingz panfengyun


weave 的网络性能表现欠佳, flannel VXLAN 能满足要求,听说 kubernetes 也推荐用 flannel 。我还推荐试用 calico ,纯 layer 3 的数据中心虚拟网络解决方案。所有的 overlay 网络方案都包含包的封装和解封,不如 calico 的性能。而且 calico 还有 scale 和 secure 的特点,支持 OpenStack/docker/裸机部署。

tingfengaini

赞同来自: 用心阁


问一下,如果对于跨子网的情况,比如host1: 192.168.0.100, host2: 192.168.1.200,这种情况下calico好像必须使用--ipip参数来实现ip封装才能完成container通讯吗?但是这种情况的calico性能又特别不好。
calico只适用于主机主要分布于同一子网的情况?

CMGS - Ghost like

赞同来自:


隧道主要是不好追踪,而且性能上确实也不佳,calico 的核心技术都做了十几年了非常成熟,基于 BGP 协议。我们自己是用 macvlan……理论上二层最简单的 overlay 方案,但是和二层设备有耦合。

tifayuki - Tutum 工程师

赞同来自:


我们是在用weave

要回复问题请先登录注册