KataContainer首页的几个大字写的是容器的速度,虚拟机的安全性。与Docker一样,都是容器,但相对与docker,Kata更安全、更好的性能

在2019年12月份,开源中国发布了一篇:以Docker为代表的传统容器到了生死存亡之际

在AWS的官方博客中描述了docker的安全隐患:

     由于操作系统内核漏洞,docker 组件设计缺陷,以及不当的配置都会导致 docker容器发生逃逸,从而获取宿主机权限,由于频发的安全及逃逸漏洞,在公有云环境容器引用不得不也运行在虚拟机中,从而满足多租户安全隔离要求。而分配、管理、运维这些传统虚拟机与容器轻量、灵活、弹性的初衷背道而驰,同时在资源利用率、运行效率上也存在浪费

 这也是云原生里面的多租户问题,其本质是容器安全问题,前几年,云厂商在推出 K8S 集群服务方面进展神速,但在提供单一容器托管方面却步伐迟缓,就是因为这个问题迟迟没有解决

        并且,多租户问题不仅仅是在共有云上存在,在公司内部的私有云上同样存在,不同部门、团队的应用,理应进行强隔离,以免一个业务出现问题影响整个公司。但过去,但在引用容器的这个势头很强,装作看不到这个问题罢了。

       对于多租户的问题,虽然社区逐渐有了一些解决方案,因为还不太成熟,也缺乏标志性时间把他们推到前台,最终,AWS出手了

AWS的答案是Firecracker,一种轻量级虚拟机(MicroVM),这个轻量级是相对于全功能虚拟机来说的,后者的代表是QEMU,号称能模拟所有硬件设备。Firecracker将能省的地方都省了,最终留下一个极其精巧的运行时,只保护该保护的地方。

从性能上来讲,Firecracker和容器已经很接近了,它最初的意图就是为AWS的Serverless服务Lambda提供保护,性能必须要跟上;从安全上来讲,在该保护的地方,它提供的是虚拟机级别的保护,无论是来自内部和外部的漏洞和攻击都能防护。

AWS还推出了Firecracker的containerd实现,这意味着可以用标准容器的方法来驱动Firecracker,说明用虚拟机来解决容器安全这条道路是可行的。

但是,AWS有自己的一套完整生态,Firecracker也是这个生态的一部分,虽然它开源了,社区并不能做到开箱即用,与Kubernetes有一些不兼容的地方。

这时,就轮到Kata Containers出场了。

       Kata Container是一个开放源代码的容器,运行时可以构建无缝插入容器生态系统的轻量级虚拟机,致力于通过轻量级虚拟机来构建安全的容器,这些虚拟机的运行方式和性能类似于容器,但是使用硬件虚拟化救赎作为第二程防御层,可以提供更强的工作负载隔离

       Kata Container 社区由 OpenStack Foundation(OSF) 领导,该基金会支持全球开放基础架构的开发和采用

特性

  •  安全:在专用的内核中运行,提供网络,I/O和内存的隔离,并可以通过虚拟化扩展利用硬件强制隔离
  •  兼容性:支持行业标准,包括 OCI容器格式,Kubernetes  CRI 接口已经旧版虚拟化技术 
  •  性能:提供与标准 Liunx 容器一直的性能;提高隔离度,而无需增加标准虚拟化的性能
  •  简单:消除了在完整的虚拟机内部嵌套容器的要求;标准接口使插入和入门变得容易

Kata Containers项目地址:

     https://github.com/kata-containers

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐