Google、サンドボックス化されたコンテナランタイム「gVisor」をオープンソースに

 Googleは5月2日、サンドボックス化されたコンテナランタイム「gVisor」をオープンソースで公開した。一般的に使われるほとんどのシステムコールを実装した専用カ-ネルをユーザー空間で実行することで、安全にコンテナを実行できる環境を用意するとしている。

 コンテナはアプリケーションの開発や実装のための手軽な方法を提供する一方で、コンテナ内からコンテナを実行するホストのシステムコールを呼び出せるなど、セキュリティに対する懸念があった。gVisorはこれに対応すべく、ホストOSとコンテナ内で動いているアプリケーションとの間に専用のカーネルを挟むことで安全に隔離を行える。

 コンテナの標準であるOCI(Open Container Interface)ランライムのruncを含み、サンドボックス化されたコンテナをDockerやKubernetesの運用環境で簡単に動かすことができるという。

 中核となるのはGo言語で実装されたカーネルで、200以上のLinuxシステムコールが実装されているという。このカーネルは通常のプロセスとしてユーザー空間で動作する。このアプローチは仮想マシンよりも軽量であり、ホストカーネルとアプリケーションとの間にこのカーネルを置くことでカーネルに依存しない仮想化ベースの強固な分離を実現するとしている。また、Go言語での実装を選んだ理由としては、メモリと型安全性を挙げている。

 gVisor自体はユーザー空間で動き、gVisorで実行されるコンテナ内のアプリケーションは専用のカーネルと仮想化されたデバイスをもつ。作成時に固定のリソースを必要とする仮想マシンとは異なり、リソースの動的な変更にも対応できるとしている。

 gVisorはプロジェクトのページより入手できる。

gVisor
https://github.com/google/gvisor