gVisor是google最新推出的一种进程级别的沙箱技术,因为跟Kubernets同一出身,所以天然的兼容于Kubernets的调度管理。

沙箱不同于传统的容器以及微虚机,众所周知,容器是通过namespace跟cgroup实现资源隔离,微虚机则通过传统的虚拟化技术(KVM),而gVisor怎是在进程界别实现了系统调用的劫持以及重定向。好处么,很明显,它不需要物理隔离资源的建立这一过程,直接应用当前进程的资源范围,实现容器服务的隔离应用。比如说容器,初始化的过程中需要现在物理上分割出需要的CPU,内存,IO等资源信息,控制权限等,然后同运行容器进行绑定,这些过程会形成一定程度的负载。

gVisor目前仍处于开发测试阶段,并不能在实际的生产环境中使用,而且能够在gVisor中运行的程序也很有限,因为它是对系统调用的重定向实现,而每个程序的系统调用都不尽相同。

除了能够兼容kubernets,gVisor也能够很好的同docker工作,它实现了一个"runsc"的执行命令,类似于传统的"runc"以及"runV"。

$ docker run --runtime=runsc hello-world

下图(取自官网)能够让你很好的了解它的运行架构:

 

传统容器                 gVisor沙箱

 

这里我们可以看出,gVisor也是对容器安全问题以及虚拟化负载的问题的优化解决方案,目的明确而且直指要害,所以我们也把它归类于微虚机。

Enjoy, and have a lot of fun!