Google发布最新使用eBPF(extended BPF)虚拟机技术,和开源网络安全软件组件Cilium的资料平面GKE Dataplane v2,现在GKE除了支持即时政策执行之外,还能在最低的性能影响下,将政策操作与Pod、命名空间和政策名称相关联,对政策进行故障排除,发现异常网络活动。
Google提到,随着Kubernetes使用案例的发展,用户对于安全性、可见性和可扩展性等要求越来越多,而且像是服务网格和无服务器等新技术,用户都需再对Kubernetes底层,加入许多自定义功能。要方便地支持这些新用例,Google表示,需要高度可程序化的资料平面,在不牺牲性能的前提,使该平面可执行更多Kubernetes封包相关的操作。
Linux在3.18版本时,加入的扩展BPF虚拟机,不需要重新编译核心或是加载核心模块,就可以在Linux核心中执行沙盒程序,eBPF能将可程序化的Hook开放给Linux核心中的网络堆栈,程序不需要在用户和核心空间中来回切换,就可以让核心使用丰富的用户空间信息,来高速地处理网络封包。
过去需要依赖核心变更和核心模块才能解决的问题,在近几年eBPF已经成为解决这些问题的标准方法,并且让部分网络、安全性和应用程序分析工具,可以不依赖核心功能,并在不影响执行效率和安全性的情况下,主动再程序化Runtime行为。
而Cilium则是一个构建在eBPF之上的开源项目,能够满足容器工作负载的可扩展性、安全性和可见性需求,Google提到,他们积极贡献Cilium项目,目前Cilium已经是所有eBPF实例中,最成熟的项目。
Google表示,Kubernetes用户会想以网络政策,来声明Pod之间通信的方式,但是过去没有可扩展的方法,对这些政策行为进行故障排除或是审核,因此无法有效地完成目的,但在GKE支持eBPF之后,便能实例即时政策执行等相关操作。
Google进一步解释(下图),当封包进到虚拟机中的时候,安装在核心的eBPF程序将会决定路由封包的方法,不像使用IPTables,eBPF程序能够访问包含网络政策信息的Kubernetes特殊元资料,如此eBPF程序不仅能决定要允许或是拒绝封包,还可以回应带注解的操作报告给用户空间。
GKE Dataplane v2用户将能获得更好的基础设施可见性,并用来改善其安全状况,像是快速识别异常流量模式,或是通过Kubernetes网络政策日志记录,用户可以直接在Cloud Logging控制台查看允许和拒绝的网络连接,并对政策进行故障排除,探索不寻常的网络活动。