开发者社区> 猫饭先生> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 本文讲的是Linux内核为高级容器网络提供关键技术【编者的话】本文介绍了一个为容器提供网络解决方案的实验性开源项目Cilium,该项目利用Linux的BPF技术在应用层完成容器的网络策略。
+关注继续查看
本文讲的是Linux内核为高级容器网络提供关键技术【编者的话】本文介绍了一个为容器提供网络解决方案的实验性开源项目Cilium,该项目利用Linux的BPF技术在应用层完成容器的网络策略。

【深圳站|3天烧脑式Kubernetes训练营】培训内容包括:Kubernetes概述、架构、日志和监控,部署、自动驾驶、服务发现、网络方案等核心机制分析,进阶篇——Kubernetes调度工作原理、资源管理及源码分析等。

实验性开源项目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添加到了Docker 1.9版本里。这成为Docker默认的网络方案,但是理论上如果有其它网络产品和Docker API配合良好的话,我们可以把SocketPlane方案替换掉。

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

原文链接:Linux kernel holds key for advanced container networking(翻译:李桦,Stephy)

原文发布时间为:2017-05-07

本文作者:李桦

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:Linux内核为高级容器网络提供关键技术

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Kata3.0.0 x LifseaOS x 龙蜥内核三管齐下!带你体验最新的安全容器之旅
袋鼠RunD正式成为安全容器上游社区最新3.0.0标准,龙蜥也已推出最新体验包,带给大家更完整的安全容器体验。
0 0
开箱即用!Linux 内核首个原生支持,让你的容器体验飞起来!| 龙蜥技术
本文将从 Nydus 架构回顾、RAFS v6 镜像格式和 EROFS over Fscache 按需加载技术三个角度来分别介绍这一技术的演变历程,并通过对比数据展示了当前方案的卓越性能,希望大家能够尽早享受到容器启动飞一样的体验!
0 0
一文解读 Linux 主线内核首个原生支持容器镜像分发方案
容器化是最近几年 DevOps 界流行的趋势,通过业务的容器化我们将创建一个完全打包、自包含的计算环境,让软件开发人员能够更加快速地创建和部署自己的应用程序。然而长期以来,由于镜像格式的限制,容器启动镜像的加载是很慢的(相关背景细节可以参考“容器技术之容器镜像篇”)。
0 0
开箱即用!Linux 内核首个原生支持,让你的容器体验飞起来!| 龙蜥技术
本文将从 Nydus 架构回顾、RAFS v6 镜像格式和 EROFS over Fscache 按需加载技术三个角度来分别介绍这一技术的演变历程。
0 0
深入剖析PHP7内核源码(二)- PHP变量容器
深入剖析PHP7内核源码(二)- PHP变量容器简介PHP的变量使用起来非常方便,其基本结构是底层实现的zval,PHP7采用了全新的zval,由此带来了非常大的性能提升,本文重点分析PHP7的zval的改变。
836 0
给Kubernetes集群下的容器配置内核参数
本文指导如何给kubernetes中的容器配置内核参数
11269 0
《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #7 Cgroup、Namespace、Linux容器
本节书摘来自华章出版社《Linux内核精髓:精通Linux内核必会的75个绝技》一书中的第2章,第2.1节,作者 竹部 晶雄、平松 雅巳,更多章节内容可以访问云栖社区“华章计算机”公众号查看
940 0
【JVM故障问题排查心得】「内存诊断系列」Xmx和Xms的大小是小于Docker容器以及Pod的大小的,为啥还是会出现OOMKilled?
【JVM故障问题排查心得】「内存诊断系列」Xmx和Xms的大小是小于Docker容器以及Pod的大小的,为啥还是会出现OOMKilled?
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云文件存储 NAS 在容器场景的最佳实践
立即下载
何种数据存储才能助力容器计算
立即下载
冬季实战营第四期:零基础容器技术实战
立即下载