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

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

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

网络功能始终是使用容器时最头痛的棘手问题之一。连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可与存在了一段时间的现有技术兼容,有一系列明确的使用场景,跟容器本身一样接近内核中的容器层面。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/20428.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HP Laser 136nw打印机与win10实现Wifi直连

HP Laser 136nw打印机与win10实现Wifi直连 HP Laser 136nw打印机设置HP Smart HP Laser 136nw打印机设置 打开打印机WIFI开关,使其他设备可以搜索到 查看打印机设备名称,用于设备搜索 查看打印机WIFI密钥,用于windows与打印机直连 根据…

手写JAVA线程池

前言 手写一个简单的java线程池:重点关注,如何确保一直有运行的线程?如何确保线程消费提交的任务信息?。一直保存有运行的线程底层使用的是死循环。使用消息队列确保信息的提交和消费。消息队列使用先进先出原则。 步骤 线程池…

iOS开发 - 系统自带框架实现扫一扫功能

iOS 扫一扫 利用系统自带框架实现扫一扫功能 一 项目配置 扫一扫功能相机和相册权限&#xff0c;在info.plist中设置询问用户是否允许访问的权限。 info.plist加入NSCameraUsageDescription、NSPhotoLibraryUsageDescription、NSPhotoLibraryAddUsageDescription <key&g…

spring 详解二 IOC(Bean xml配置及DI)

配置列表 Xml配置 功能描述 <bean id"" class""></bean> Bean的id&#xff0c;配置id会转为Bean名称和不配就是全限定类名 <bean name"" ></bean> Bean的别名配置&#xff0c;存储在Factory的aliasMap中通过别名也…

操作系统Linux—day01

编程 网页 软件 网站项目 知识点&#xff1a; 前端页面&#xff1a;HTML css JavaScript JQuery VUE 数据库&#xff1a;Oracle MySQL 服务器&#xff1a;服务器的操作系统Linux Http://115.159.96.174:8090/EasyBuy/ www.baidu.com>http://180.101.49.12/ 后台技术…

几何伙伴行泊一体解决方案入选浦东人工智能十大创新技术

2023年7月8日&#xff0c;在全球瞩目的世界人工智能大会&#xff08;WAIC&#xff09;浦江东岸分会场&#xff0c;主题为“引领未来&#xff0c;赋能焕新”的“2023世界人工智能大会浦东论坛”隆重举办。浦东新区作为全国首个人工智能创新应用先导区&#xff0c;正打造上海人工…

electron的(maximize)最大化方法会导致头部白色横条以及四周大黑边

参考文章&#xff1a;https://www.w3cways.com/2505.html 感谢这位博主 我在使用win.maximize()后发现应用程序虽然最大化了&#xff0c;但是四周和顶部有一定宽度的黑边白边&#xff0c;在百度一段时间后没有发现其他人有这个问题 &#x1f614;唉 必现步骤&#xff1a; 只要…

前端理解的HTTP缓存(作用、缓存策略、缓存控制机制、应用)

一、HTTP缓存有什么作用&#xff1f; 缓存是为了重复使用而被存储的&#xff0c;可以减少浏览器和服务器之间通信的次数、降低网络延迟、加速页面加载、提高用户体验性等。不但能使网页打开速度更快&#xff0c;还能减少服务器的压力。 二、 浏览器的缓存策略有哪些&#xff1…

【MySQL】不就是事务

前言 嗨咯&#xff0c;小伙伴们大家好呀&#xff0c;我已经一个星期没有更新了&#xff0c;实在抱歉&#xff01;本期我们要学习MySQL初阶中的最后一课&#xff0c;MySQL数据库中的事务也算是近几年面试必考的问题&#xff0c;所以我们一定要认真学习。 目录 前言 目录 一、事…

派盘支持单向和双向资料同步

派盘作为一款本地云存储解决方案&#xff0c;不仅支持双向同步&#xff0c;还提供了设置部分文件夹单向同步的功能。这意味着用户可以根据自己的需求&#xff0c;精确控制文件夹的同步方向&#xff0c;以实现更有针对性的文件管理和同步。 π-Disk派盘 – 知识管理专家 派盘的…

最详细的下载安装PicGo图床配合Typora使用

1.node.js下载安装1.2 检验安装成功 2. PicGo下载安装3. 配置Gitee【配合PicGo使用】3.1 获取PicGo的token 4. 配置PicGo4.1 下载插件4.2 配置图床[Gitee]4.3 配置Typora 5. 上传图片到Gitee【重要】6.解决配置错误 1.node.js下载安装 【node.js下载链接】点击跳转页面&#x…

JVM (simple Version)

简介 JVM 其实就是一个Java进程 , 从操作系统申请一大块内存区域, 供 java 代码使用 . 申请出的内存 , 进一步划分 , 给出不同的用途 . JVM 内存区域划分 : 堆中存放就是 new 出来的对象. (成员变量) 栈 是用来维护方法之间的调用关系 (局部变量) 元数据区(或者叫方法区) 存放的…