写点什么

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:001926
用户头像

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

关注

评论

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

解读非托管流动性协议Hover: 差异化、层次化的全新借贷体系

股市老人

极狐GitLab专家团队支招解决 CVE-2023-4998 漏洞问题

极狐GitLab

DevOps gitlab 安全 DevSecOps 漏洞

蓝易云:Ubuntu系统添加和删除用户方法。

百度搜索:蓝易云

云计算 Linux ubuntu 云服务器 用户

GLTF纹理贴图工具让模型更逼真

3D建模设计

材质 纹理 贴图

Spring扩展-自定义属性编辑器

Java @Override 注解

HoneyMoose

蓝易云:Mac 安装homebrew Mac安装Git教程。

百度搜索:蓝易云

git Linux Mac homebrew linux云计算

秒验:可以自定义UI的一键登录服务

MobTech袤博科技

大数据 智能推送

聚合电商API接口平台:让数据成为生产力!

Noah

数据api API 安全 电商api接口

愤怒的小鸟Angry Birds Reloaded mac(休闲益智类游戏)v2.4中文激活版

mac

windows 游戏 苹果mac 愤怒的小鸟 Angry Birds

秒懂算法 | 字符串匹配算法实例分析之潜伏者、最低三元字符串

TiAmo

算法 字符串匹配

简单好用的Mac清理工具 BuhoCleaner

展初云

Mac软件 清理软件

2023年被问了100遍的1000道java面试题,终于总结成了485页PDF

程序员万金游

编程 Java 面试 程序员、 java Java 面试题

近年北美地区 IT 岗求职之怪现状

HoneyMoose

一种长链换短链的实现思路

golf

golang 后端 短链

基于Scrum框架产研团队运作20问

laofo

DevOps 敏捷 研发效能 敏捷精髓 持续交付

视频回放编辑软件Mitti最新免激活版

胖墩儿不胖y

Mac软件 音频编辑 音频处理工具

开放原子开源基金会九月新增捐赠人

开放原子开源基金会

Java基础面试题【六】线程(2)

派大星

Java 面试题

模型UV纹理设置工具

3D建模设计

材质 纹理 贴图

轻量云服务器才是跨境电商最终归宿

平平无奇爱好科技

华为云828营销季正式开启,打造中小企业“上云嘉年华”

平平无奇爱好科技

错误排查

Java List 中存不同的数据类型

HoneyMoose

Java 21新特性-虚拟线程

越长大越悲伤

Java

简洁的Markdown文本编辑器 Typora中文版

mac大玩家j

文本编辑器 Mac软件 markdown编辑

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