手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Google 发布开源容器运行时 gVisor

[日期:2018-05-04] 来源:Linux社区  作者:Linux [字体: ]

Google 发布了开源容器运行时 gVisor。Google 称 gVisor 比 VM 轻量级,但同时保持了相似程度的隔离。gVisor 的核心是一个作为普通无特权进程运行的核心,支持绝大多数 Linux 系统调用。这个核心是用 Go 语言编写的,Google 称选择 Go 是因为它的内存安全和类型安全特性。和 VM 一样,运行在 gVisor 沙盒内的应用有自己的内核和虚拟设备,不同于主机和其它沙盒。

Kata容器是一个开源项目,其利用精简化虚拟机以尽可能减少资源占用量,同时最大限度提高容器隔离能力。与gVisor一样,Kata也包含与Docker及Kubernetes相兼容的开放容器倡议(简称OCI)运行时。

利用gVisor建立沙箱化容器

gVisor能够在保证轻量化优势的同时,提供与虚拟机类似的隔离效果。gVisor的核心为一套运行非特权普通进程的内核,且支持大多数Linux系统调用。该内核使用Go编写,这主要是考虑到Go语言拥有良好的内存管理机制与类型安全性。与在虚拟机当中一样,gVisor沙箱中运行的应用程序也将获得自己的内核与一组虚拟设备——这一点与主机及其它沙箱方案有所区别。


gVisor通过在用户空间内拦截应用程序系统调用并充当访客内核,gVisor能够提供强大的隔离边界。而与需要一组固定资源的虚拟机不同,gVisor能够随时适应不断变化的资源条件,这一点更像是普通Linux进程。gVisor很像是一种超虚拟化操作系统,其与完整虚拟机相比拥有更灵活的资源利用方式与更低的固定成本,但这种灵活性的代价是其系统调用成本更高且应用程序兼容性略差。

保护工作负载已经成为目前业界的首要任务,我们很高兴地看到gVisor这类创新方案的出现,并期待着能够在规范方面开展合作,共同对联合技术组件加以改进,从而为生态系统带来更可靠的安全保障能力。”
——Samuel Ortiz,Kata技术指导委员会成员、英特尔公司首席工程师

“Hyper公司鼓励我们了解gVisor采用的全新容器隔离方法,业界需要一套强大的安全容器技术生态系统,我们期待着与gVisor合作以将安全容器推向主流市场。”
——Xu Wang,Kata技术指导委员会成员、Hyper.sh公司CTO

与Docker及Kubernetes相集成

gVisor运行时能够与Docker及Kubernetes实现无缝化集成,这一集成效果通过匹配OCI运行时API的runsc(即‘run Sandboxed Container’的缩写)实现。

runsc运行时可与Docker的默认容器运行时runc进行互换。其安装非常简单; 在安装完成后,只需要一个额外标记即可在Docker内运行沙箱化容器:

$ docker run --runtime=runsc hello-world
$ docker run --runtime=runsc -p 3306:3306 mysql

在Kubenetes当中,大多数资源隔离在pod层面实现,而这意味着pod能够天然充当gVisor的沙箱边界。Kubernetes社区目前正在对沙箱pod API进行标准化调整,但目前已经开放实验性支持供用户体验。

runsc运行时能够在Kubernetes集群当中通过cri-o或cri-containerd等项目运行沙箱化pod——此类项目负责将Kubelet中的消息转换为OCI运行时命令。

gVisor能够实现大部分Linux系统API(总计200项系统调用与计数),但仍有一部分无法支持。部分系统调用与参数目前尚无法使用,/proc与/sys文件系统中的某些特定部分同样如此。因此,还有少数应用程序不能在gVisor当中运行。但除此之外,包括Node.js、Java 8、MySQL、Jenkins、Apache、Redis以及MongoDB等在内的大多数应用程序皆可顺利运作。

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-05/152206.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款