谷歌开源沙箱容器运行时环境:gVisor
极客时间编辑部
讲述:丁婵大小:1.23M时长:02:42
近日,谷歌开源了 gVisor,这是一个新型的沙箱容器运行时环境,它能够为容器提供安全的隔离措施,同时继续保持远优于虚拟机的轻量化特性。它还能够与 Docker 及 Kubernetes 实现集成,从而在生产环境中更轻松地建立起沙箱化容器系统。
据介绍,gVisor 能够在保证轻量化优势的同时,提供与虚拟机类似的隔离效果。它的核心是一套运行非特权普通进程的内核,并且支持大多数 Linux 系统调用。该内核使用 Go 编写,这主要是考虑到 Go 语言拥有良好的内存管理机制与类型安全性。
与在虚拟机当中一样,gVisor 沙箱中运行的应用程序也将获得自己的内核与一组虚拟设备,这一点与主机及其它沙箱方案有所区别。
据悉,gVisor 通过在用户空间内拦截应用程序系统调用并充当访客内核,它能够提供强大的隔离边界。而与需要一组固定资源的虚拟机不同,gVisor 能够随时适应不断变化的资源条件,这一点更像是普通 Linux 进程。
同时,gVisor 也很像是一种超虚拟化操作系统,但与完整虚拟机相比,它拥有更灵活的资源利用方式与更低的固定成本,但这种灵活性的代价是其系统调用成本更高,并且应用程序兼容性略差。
此外,gVisor 运行时能够与 Docker 及 Kubernetes 实现无缝化集成,这一集成效果通过匹配 OCI 运行时 API 的 runsc(即‘run Sandboxed Container’的缩写)实现。
在 Kubernetes 当中,大多数资源隔离在 pod 层面实现,这意味着 pod 能够天然充当 gVisor 的沙箱边界。Kubernetes 社区目前正在对沙箱 pod API 进行标准化调整,目前已经开放实验性支持供用户体验。
目前,gVisor 能够实现大部分 Linux 系统 API(总计 200 项系统调用与计数),但仍有一部分无法支持,此外还有部分系统调用与参数还无法使用,因此,目前还有少数应用程序不能在 gVisor 当中运行。
但除此之外,包括 Node.js、Java 8、MySQL、Jenkins、Apache、Redis 以及 MongoDB 等在内的大多数应用程序都可以顺利运作。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- TomShine这个不错,可以尝试下
收起评论