首页 > 其他分享 >开源Cillium项目为容器提供强大的网络功能

开源Cillium项目为容器提供强大的网络功能

时间:2023-07-07 23:36:02浏览次数:40  
标签:容器 BPF 网络 开源 内核 Linux Cillium Cilium

试验性的开源Cillium项目使用Linux内核的一项现有特性,为容器提供高速、强大的网络功能。一项名为Cilium的开源项目试图基于Linux内核中所用的技术,为容器提供一种新的网络方法。

试验性的开源Cillium项目使用Linux内核的一项现有特性,为容器提供高速、强大的网络功能。
开源Cillium项目为容器提供强大的网络功能开源Cillium项目为容器提供强大的网络功能

网络功能始终是使用容器时最头痛的棘手问题之一。连Google开源的容器集群管理系统Kubernetes在实现网络功能方面也存在着限制,虽然它正迅速成为容器编排的首选技术。这让网络安全之类的棘手问题变得更棘手了。

现在,一项名为Cilium的开源项目试图基于Linux内核中所用的技术,为容器提供一种新的网络方法DD该项目得到了谷歌的部分赞助,目的在于为容器提供更好的网络安全和更简单的网络模型。

以BPF方式来联网

Linux中的网络安全机制(比如iptable)通常只适用于网络、数据包和地址这些层面,即OSI模型的第3层。那些机制无法与HTTP之类的协议对话。

Cilium使用Linux的伯克利数据包过滤(BPF)技术,在网络层面和HTTP层面为Docker容器或Kubernetes pod执行网络安全策略。

BPF被引入到了Linux 2.5,此后就成了内核中的一项稳定功能。由于BPF,人们可以在内核里面编译并运行提供网络过滤机制和性能分析及跟踪分析的小程序。

据Cilium的GitHub代码库说明文档显示,Cilium的工作原理是生成内核层面的BPF程序,这些程序可直接与容器协同运行。Cilium可以为每个容器分配一个IPv6地址(或除此之外的IPv4地址),并使用容器标签而非网络路由规则来执行容器之间的隔离,而不是为容器创建覆盖网络。它还包括了面向编排系统的整合,以便处理创建和执行Cilium策略的工作。

Cilium使用BPF的两大原因是速度和便利。BPF程序被编译成原生机器代码,那样它们运行起来速度与其他任何内核代码一样快。对Cilium使用的BPF程序加以改动不需要重新引导,甚至不需要容器重启。Cilium的开发者还声称,BPF程序针对每个容器进行了优化,那样“某个容器不需要的功能完全不需要编译。”

现处于试验阶段,但最终必不可少

Cilium的一个潜在问题是,它需要版本非常新的Linux内核:4.8.0或更新版本,推荐4.9.17,另外需要LLVM 3.7.1或更新版本。话虽如此,Cilium的功能集合并不受制于任何特定的Linux版本DD比如说,“添加Linux内核不提供的额外统计信息”或者“额外的转发逻辑”。

Cilium是容器处理网络功能的一种试验性解决方案,不过对多种方法而言仍有很大的余地DD即使是Docker发展过程中的现阶段。Docker的最初网络方法很笨拙,很难管理,所以这家公司收购了SocketPlane,并将其类似OpenDaylight的网络结构(network fabric)添加到了Docker 1.9。该解决方案默认情况下随带Docker,但是从理论上来说,它可以换成可与Docker API兼容的其他网络产品。

Cilium的优点在于,它是按照与容器同样的思路构建的,使用了现有的Linux内核技术;Docker式样的容器实际上重新包装了长期以来存在于Linux内核中的功能。同样,Cilium可与存在了一段时间的现有技术兼容,有一系列明确的使用场景,跟容器本身一样接近内核中的容器层面。

标签:容器,BPF,网络,开源,内核,Linux,Cillium,Cilium
From: https://www.cnblogs.com/x1-c2/p/17536373.html

相关文章

  • 开源Cillium项目为容器提供强大的网络功能
    试验性的开源Cillium项目使用Linux内核的一项现有特性,为容器提供高速、强大的网络功能。一项名为Cilium的开源项目试图基于Linux内核中所用的技术,为容器提供一种新的网络方法。试验性的开源Cillium项目使用Linux内核的一项现有特性,为容器提供高速、强大的网络功能。网络功......
  • 开源Cillium项目为容器提供强大的网络功能
    试验性的开源Cillium项目使用Linux内核的一项现有特性,为容器提供高速、强大的网络功能。一项名为Cilium的开源项目试图基于Linux内核中所用的技术,为容器提供一种新的网络方法。试验性的开源Cillium项目使用Linux内核的一项现有特性,为容器提供高速、强大的网络功能。网络功......
  • 推荐一款C#开源的操作简单、免费的屏幕录制和GIF动画制作神器
    前言    今天要给大家推荐一款由C#语言开发且开源的操作简单、免费的屏幕录制和GIF动画制作神器:ScreenToGif 。工具介绍ScreenToGif是一款免费的开源屏幕录制和GIF制作工具。它可以帮助用户捕捉计算机屏幕上的实时动画,并将其保存为高质量的GIF图像格式。该工具不仅......
  • C++黑马程序员——P193-196. string容器 字符串比较,字符存取,字符串插入和删除,子串
    P193.string容器——字符串比较P194....——字符存取P195....——字符串插入和删除P196....——子串获取P193.字符串比较 ——————————————————————————————————————————————————————————1//字符......
  • 【开源分享】在线客服系统源码,支持发送文本表情,上传图片附件附详细搭建教程
    源码介绍golang开发的单用户在线客服系统,功能非常的简洁实用,没有多余的功能。golang语言可编译为二进制程序,自带守护进程功能,相比于流传最广的PHP客服系统要稳定环境配置服务器:linux或者windows都可以golang运行环境MySQLNginx配置Golang环境Windows系统首先下载golang......
  • 开源许可证保姆级入门手册
    开源许可证是个相当庞杂的范畴,仅OSI(OpenSourceInitiative,开放源代码促进会)批准的许可证就有80多种;此外,还有数百种在开源生态中流传的其他许可证。虽然有些开源许可证相对简洁明了,适合只想简单发布开源项目的人使用;但还有一些许可证非常冗长复杂,甚至需要专业的法务团队介入......
  • C++黑马程序员——P189-192. string容器 构造函数,赋值,拼接,查找和替换
    P189.string容器——构造函数P190....——赋值操作P191....——字符串拼接P192....——字符串查找和替换P189.构造函数———————————————————————————————————————————————————————————————......
  • docker 容器的详细信息中ContainerConfig与config区别
    在Docker中,dockerinspect命令用于检查容器的详细信息。当我们运行dockerinspect<容器ID或名称>时,将返回一个包含容器的元数据和配置的JSON对象。ContainerConfig和Config是dockerinspect输出中的两个字段,它们分别表示容器的初始配置和当前配置。下面是它们之间的区别:C......
  • 力扣11. 盛最多水的容器
    题目:给定一个长度为n的整数数组 height 。有 n 条垂线,第i条线的两个端点是 (i,0) 和 (i,height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。 示例1: 输入:[1,8,6,2,5,4,8,......
  • Docker宿主机时间与容器时间不一致问题
    查看宿主机时区和时间:[root@iZbp19plg6p1ajmesvagqvZ~]#timedatectlLocaltime:五2023-07-0715:28:28CSTUniversaltime:五2023-07-0707:28:28UTCRTCtime:五2023-07-0707:28:27Timezone:Asia/S......