Google 發表了 gVisor,針對 Linux 所使用的 container 技術強化安全的部份:「Open-sourcing gVisor, a sandboxed container runtime」。
依照 Google 的說法,一般 container 的架構是這樣:
而具有強隔離性的 VM 技術則是這樣:
在 VM 的 overhead 偏重,但一般的 container 安全性又不夠。而 gVisor 則是這樣:
對於目前最常見的 Docker 系統上,在安裝 gVisor 後只需要指定 --runtime=runsc
就可以使用 (預設是 --runtime=runc
),像是這樣:
$ docker run --runtime=runsc hello-world $ docker run --runtime=runsc -p 3306:3306 mysql
其中 runsc
的意思是「run Sandboxed Container」。
另外而因為 gVisor 卡在中間,不認識的 syscall 都會被擋下來,所以目前並不是所有的應用程式都可以跑,但開發團隊已經測了不少應用程式可以在上面運作,算是堪用的程度:
gVisor implements a large part of the Linux system API (200 system calls and counting), but not all. Some system calls and arguments are not currently supported, as are some parts of the /proc and /sys filesystems. As a result, not all applications will run inside gVisor, but many will run just fine, including Node.js, Java 8, MySQL, Jenkins, Apache, Redis, MongoDB, and many more.
One thought on “Google 推出 gVisor 強化 Container 的安全性”