写点什么

Cilium 1.0.0-rc4 发布:使用 Linux BPF 实现透明安全的容器间网络连接

  • 2018-03-13
  • 本文字数:2206 字

    阅读完需:约 7 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Cilium 是一种开源软件,它使用 Docker Kubernetes 等 Linux 容器管理平台,实现应用服务间网络连接性的透明安全部署。Cilium 1.0.0-rc4 于近期发布,其中包括:将 CNCF(云原生计算基金会,Cloud Native Computing Foundation)力推的 Envoy 配置为默认的 HTTP/gRPC 代理、给出了一种针对连接性和其它一些错误的基本健康情况总览、改进了可扩展的键值存储交互层

微服务应用呈现出高度动态的特点,这对于微服务间的安全连接性不仅是一个挑战,而且也是一个机会。当前,解决该问题的方法结合使用了CNCF 力推的 CNI(容器网络接口,Container Network Interface),以及 Istio Conduit 等日益广为使用的“服务网格(Service Mesh)”技术。 Cilium 文档中指出,传统的 Linux 网络安全方法(例如 iptables )是根据 IP 地址和 TCP/UDP 端口做过滤。但是容器和 IP 地址的生命周期存在高度不稳定的问题,导致这些网络安全方法难以和应用一起扩展,因为必须要不断地更新大量的负载平衡表和访问控制列表。

Cilium 尝试通过使用一种称为“ Berkeley Packet Filter ”(BPF)的相对较新技术解决这一问题,并实现扩展性。BPF 是一种 Linux 内核字节码解释器,最初用于实现 tcpdump 和 Socker 过滤器那样的网络包过滤。通过使用哈希表、数组等一些额外的数据结构扩展,及一些额外的操作,BPF 现已支持网络包的修改(packet mangling)、转发和封装等操作。此外,BPF 还提供了一个驻留内核的验证器以确保 BPF 程序安全运行、一个将字节码转换为特定于 CPU 架构的指令的 JIT 编译器以保证原生的执行效率。性能大师 Brendan Gregg 对“ Linux BPF 超能力”做了一些了深入的讲解和文章,可供对探索 BPF 更多细节的读者参考。

Cilium 部署中包括如下组件,这些组件运行在 Linux 容器集群中的每个容器节点上。

  • Cilium Agent(Daemon):它是一种使用 Golang 编写的用户空间 daemon,实现与容器运行时的交互,并通过插件编排 Kubernetes 等系统,设置在本地服务器上运行的容器网络和安全性。它提供了一个 API,用于配置网络安全策略、提取网络可见性数据等。
  • Cilium CLI Client:一种用于和本地 Cilium Agent 通信的基本 CLI 客户端,例如配置网络安全或可见性策略。
  • Linux Kernel BPF:一种使用 BPF 功能的数据路径组件,它集成了 Linux 内核功能,并接收运行在内核中的各种钩子和追踪点处的编译后二进制代码。Cilium 编译 BPF 程序,并让内核在网络栈的关键点处运行这些程序,以具备对所有出入容器网络流的可见性和控制性。
  • Container Platform Network 插件:为集成外部网络平台,每种容器平台(例如 Docker、Kubernetes)都具有自己的插件模型。就 Docker 而言,每个 Linux 节点运行一个进程(cilium-docker)处理每个 Docker libnetwork 调用,并传递主要 Cilium Agent 上的数据和请求。建议内核中版本依然在构建中,Cilium 使用了一组用户空间代理( Envoy 是其中之一)提供应用协议层过滤。

图1 Cilium 的架构(图片来自于 Cilium 概念文档

Cilium 可为 REST/HTTP、gRPC 和 Kafka 等现代应用协议提供安全功能。传统的防火墙通常操作于网络第三层和第四层上,运行于特定端口上的协议或者是完全受信的,或者被完全拒绝。Cilium 提供了对单个应用协议请求的过滤功能,例如:

  • 允许所有具有 GET 方法以及“/public/.*.”路径的 HTTP 请求,拒绝所有其它的请求。
  • 允许 service1 在 topic1(Kafka Topic)上生成消息,service2 消费 topic1 上的消息,拒绝所有其它的 Kafka 消息。
  • 要求所有的 REST 调用中存在 HTTP 头部 X-Token 模式“[0-9]+”。

在 Cilium 文档的“ Layer 7 Policy ”一节中给出了最新支持协议的列表,并提供了如何使用的例子。因为 BPF 运行在 Linux 内核中,(理论上)可在不对应用代码或容器配置做任何更改的情况下,应用和更新 Cilium 的安全策略

Cilium 提供了全面的网络安全实现方法,其核心理念围绕着指定一组共享同样安全策略的应用容器安全身份而构建。进而,安全身份会关联到应用容器所发出的所有网络包,并在接收节点处对身份进行验证。安全身份管理的执行使用了一种键值存储。

Cilium 还提供了其它很多网络特性,包括:具备跨多个集群连接所有应用容器能力的基本第三层扁平网络(这意味着无需任何主机间协调就可分配每个主机的 IP)、用于应用容器间流量和外部服务的分布式负载均衡(负载均衡使用允许“几乎可无限扩展”的高效哈希表通过 BPF 实现)、具有元数据的事件监测等深入可观察性、政策决策追踪,以及通过 Prometheus 导出各种度量等。

在近期召开的 KubeCon 北美大会上,“服务网格”得到了广泛的讨论(尤其是围绕着 Istio 控制面板)。Cilium 社区相应编写了一份指南,阐明了Cilium 技术及BPF 的总体前景将如何辅助Istio 实现。Istio 本身使用了Envoy 实现自身的数据面板,并且代理以附加(sidecar)配置形式运行在应用Pod 内。Cilium 在应用Pod 外运行 Envoy ,并为单个 Pod 配置独立的监听器。Cilium 建议:

模型中没有所谓的对错,各自在一系列方面上分别具有一些优点和不足,例如运维复杂性、安全、资源核算、占用空间等。Cilium 未来可能支持运行两个模型中的任一种。

Cilium 项目网站上提供了更多信息,还可以通过 Cilium Slack 提问。

查看英文原文: Cilium 1.0.0-rc4 Released: Transparently Secure Container Network Connectivity Utilising Linux BPF

2018-03-13 19:002350
用户头像

发布了 391 篇内容, 共 153.4 次阅读, 收获喜欢 257 次。

关注

评论

发布
暂无评论
发现更多内容

TikTok运营干货:快速起号教程

Ogcloud

tiktok运营 tiktok直播专线 TikTok养号 tiktok起号 tiktok运营干货

京东商品评价API的获取和应用

科普小能手

API 接口 API 测试 淘宝API接口 淘宝评论API 淘宝商品API

云桌面怎么连接安装系统

青椒云云电脑

云桌面

云桌面怎么开通?支持哪些外设

青椒云云电脑

云桌面

获取API接口数据的最佳实践详解

Noah

Amphion 推出开源 TTS 模型 MaskGCT,5 秒克隆声音;神秘文生图模型「小熊猫」登顶竞技场丨 RTE 开发者日报

声网

云桌面怎么收费

青椒云云电脑

云桌面

现代化可观测性平台(1)

俞凡

架构 云原生 可观测性

智能门锁展|2025年深圳国际锁具产业博览会

秋硕展览

【JVM】类加载子系统(类加载器、双亲委派)

不在线第一只蜗牛

JVM

Mint Blockchain 正式宣布推出 Mint Forest 3.0!

NFT Research

blockchain #Web3

Vitalik 新文丨以太坊可能的未来:The Splurge

TechubNews

以人机协同的方法轻松构建RAG模型

澳鹏Appen

大模型 LLM 大语言模型 rag 检索增强生成

阿里巴巴店铺商品API返回值中的商品分类与筛选条件

技术冰糖葫芦

API 优先 pinduoduo API

云桌面解决方案厂商推荐?报价如何

青椒云云电脑

云桌面 云桌面解决方案 云桌面厂商

资产代币化的崛起:揭开万亿级市场机遇的探索

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 钱包开发 代币开发

2025北京消费电子技术博览会

AIOTE智博会

消费电子展 消费电子展会 消费电子博览会 消费电子展览会

Solana生态亮点、代币经济学、竞争定位全览

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 钱包开发 代币开发

中小企业如何选择合适的云桌面供应商

青椒云云电脑

云桌面 云桌面厂商

捷途旅行者:79171台销量——方盒子SUV的全能伙伴

科技热闻

软件测试学习笔记丨Selenium配置浏览器启动状态options

测试人

软件测试

百度赵世奇:文心智能体平台加速跑通商业闭环

极客天地

TikTok Shop多账户运营怎么防关联?

Ogcloud

海外云手机 tiktok云手机 tiktok运营 tiktok矩阵 tiktok防关联

通过观测云对接企业消息中心,实现定制化告警通知

观测云

告警通知

与Zilliz、Google等探讨中美AI应用与落地,XTransfer受邀参与分享沙龙

XTransfer技术

店铺商品尽在掌握:阿里巴巴API返回值说明

技术冰糖葫芦

API 接口 API 测试 API 协议 API 优先

三维度深度分析:TDengine 数据订阅 vs InfluxDB 数据订阅

TDengine

数据库 tdengine 时序数据库

2025中国(广州)国际喷码标识技术设备展会

秋硕展览

试用期被裁是有补偿的!一定要记得领取~

王磊

开源Embedding模型,有效提升中文语义理解与召回

合合技术团队

开源 文档 大模型

Cilium 1.0.0-rc4发布:使用Linux BPF实现透明安全的容器间网络连接_DevOps & 平台工程_Daniel Bryant_InfoQ精选文章