Linux内核为高级容器网络提供关键技术

栏目: 服务器 · Linux · 发布时间: 7年前

内容简介:Linux内核为高级容器网络提供关键技术

【编者的话】本文介绍了一个为容器提供网络解决方案的实验性开源项目Cilium,该项目利用 Linux 的BPF技术在应用层完成容器的网络策略

实验性开源项目Cilium使用现有的Linux内核特性为容器提供更快更有力的网络

容器使用过程中,网络一直是最令人头疼的问题之一。即使是Kubernetes这种快速成为容器编排的首选技术,在完善网络方面也存在局限性。类似网络安全这类棘手问题也变得更棘手。

由Google支持的开源项目Cilium也在试图提供一种基于Linux内核已有技术的全新网络技术。项目的目标是为容器提供更好的网络安全以及更简单的网络模式。

BPF式网络

Linux里的网络安全机制,例如iptables,只是工作在网络、数据包以及地址层面,也就是OSI模式中的第三层。然而这些机制并不会涉及类似HTTP等协议。

Cilium利用Linux的巴克利包过滤(BPF)技术,在网络层和HTTP层为 Docker 容器或者Kubernetes pods实现网络安全策略。

Linux 2.5版本引入BPF并从此稳定在内核里。多亏了BPF技术,使得我们可以编译并运行内核态程序,通过这些程序实现网络过滤机制,实现性能分析和跟踪。

按照Cilium的GitHub资源库文档,Cilium的工作模式是生成内核级别的BPF程序与容器直接交互。 区别于为容器创建overlay网络,Cilium允许每个容器分配一个IPv6地址(或者IPv4地址),使用容器标签而不是网络路由规则去完成容器间的网络隔离。它还包含创建并实施Cilium规则的编排系统的整合。

使用BPF的两大理由是快速性和方便性。BPF被编译成内部机器代码,所以它能像其它内核代码一样快速运行。Cilium使用的BPF程序变化时不需要重启机器甚至容器也不需要重启。Cilium的创造者也指出BPF程序是基于单个容器进行优化,因此特定容器所不需要的特性不编译进去就行了。

实验性质,后续可能成为必要

Cilium的一个潜在争议是它需要较新的内核版本--4.8.0及以后,建议4.9.17同时LLVM版本要求3.7.1及以后。尽管如此,Cilium的一系列特性并不和特定的Linux版本绑定,举个例子,附加的额外统计不是由Linux内核提供,此外其它转发逻辑也是如此。

Cilium为容器展示了一个实验性质的网络解决方案,在多方面都有很大的发展空间,在这点上,Docker解决方案亦然。Docker原生的网络方案不灵活而且不易于管理,于是公司引入了SocketPlane并且把它的网络结构OpenDaylight添加到了Docker1.9版本里。这成为Docker默认的网络方案,但是理论上如果有其它网络产品和Docker API配合良好的话,我们可以把SocketPlane方案替换掉。

Cilium的优点在于它使用与容器相同的思路,利用现有的Linux内核技术构建;Docker类型的容器本质上还是既有Linux内核能力的重新整合。同样的,Cilium兼容现有技术,拥有一系列被充分了解的使用场景,接近于容器在内核中的级别。

原文链接: http://www.infoworld.com/artic ... .html


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Heuristic Search

Heuristic Search

Stefan Edelkamp、Stefan Schrodl / Morgan Kaufmann / 2011-7-15 / USD 89.95

Search has been vital to artificial intelligence from the very beginning as a core technique in problem solving. The authors present a thorough overview of heuristic search with a balance of discussio......一起来看看 《Heuristic Search》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具