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

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

内容简介: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


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

查看所有标签

猜你喜欢:

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

高可用架构(第1卷)

高可用架构(第1卷)

高可用架构社区 / 电子工业出版社 / 2017-11-1 / 108.00元

《高可用架构(第1卷)》由数十位一线架构师的实践与经验凝结而成,选材兼顾技术性、前瞻性与专业深度。各技术焦点,均由极具代表性的领域专家或实践先行者撰文深度剖析,共同组成“高可用”的全局视野与领先高度,内容包括精华案例、分布式原理、电商架构等热门专题,及云计算、容器、运维、大数据、安全等重点方向。不仅架构师可以从中受益,其他IT、互联网技术从业者同样可以得到提升。一起来看看 《高可用架构(第1卷)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器