Cilium 一年多前才推出,社区却相当活跃,成员有来自 Google、Facebook、Netflix、Red Hat 等公司的开 发人员(为什么是这几家大厂,我们后文详解),前几天还刚刚发布了 1.6 版本,据称可以 100%替换 kube-proxy。总之越来越多的人关注到这一项目。
为什么需要 Cilium
现代数据中心系统已变迁至“微服务”架构,大型应用程序被分成小的独立服务,这些服务使用 HTTP 等轻量级协议通过 API 相互通信。微服务往往是高度动态的:随着负载的变化,上层应用扩展或收缩伴 随底层容器的启动或销毁,这整个过程则是持续交付的一部分。
这一高度动态的变化,对于确保微服务之间的连通性提出了挑战。传统的 Linux 网络安全方法(如 iptables)通过 IP 地址和端口进行过滤,但容器不稳定的生命周期导致 IP 地址在微服务环境中难以跟 踪。同时,负载平衡策略和访问控制列表增长迅速,某些案例中甚至达到数十万条规则的规模。常用的 服务端口(如 HTTP 的 TCP 80)无法根据安全要求区分应用流量,因为这些端口用于跨服务的各种消息。
缺乏准确的可见性也是一个问题,因为作为传统系统识别标记的 IP 地址,在微服务架构中可能仅仅存在几秒钟。
Cilium 主要功能
Cilium 可以透明地插入安全可见性和策略强制性。相对于传统系统的 IP 地址,它基于 service/pod/container 标识,并在应用层(如 HTTP)过滤。
其重要功能特性包括:
安全上,支持 L3/L4/L7 安全策略,这些策略按照使用方法又可以分为:
基于应用协议(允许特定 HTTP 请求,或允许特定 service 生成或消费特定的 Kafka topic)
基于身份(Identity)
基于标签
基于 CIDR
网络上,支持 Layer 3 三层网络,如:
覆盖网络(Overlay),包括 VXLAN 和 GENEVE
原生路由网络(Native Routing),包括原生的 IPv6 网络和云服务商的高级网络路由
负载均衡
便利的监控和排错能力
从 BPF 到 Cilium
Cillium 基于 BPF,官网称其为”a new Linux kernel technology”,其实不然。
BPF 的设计,最早可以追溯到 1992 年的一篇论文:The BSD Packet Filter: A New Architecture for User-level Packet Capture。由于最初版本的 BPF 是实现于 BSD 系统的,于是在论文中作者称之为”BSD Packet Filter”。
HyperV桌面云方案,是项目组基于微软的Hyper-V Server 2016搭建的免费VDI平台。由于Hyper-V Server 2016只能提供基础的虚拟机管理服务,不能满足VDI的日常使用及管理需求,所以进阶功能都是由项目组通过自行编写脚本及搭建web站点来实现,功能上不是非常完善,用户体验、稳定性以及可管理性也远不及商业方案。
Gartner咨询公司的角色定位,决定了它提出的概念往往是比较抽象、比较”上层”的。它的这套框架理念,乍一看似乎专业的安全团队或多或少都会融入到日常的工作中。比较显眼的关键字,可能就是retrospective analysis(回溯分析)、anticipate threats/attacks(预测)和baseline system and security posture(安全基线)。