write.kogu

gVisorについて日本語で読める(聞ける)素晴らしい解説たち

Google コンテナ サンドボックス Go言語 golang

gVisorはGoogleが公開した、OSSの新しいコンテナランタイムです。 コンテナランタイムのひとつ、という地味な分野の割に、このプロダクトはそこそこ話題になっています。

私たちがずっと使っているGAEにも大きく関わるgVisor。 日本語で読める深めの解説記事やプレゼン、ポッドキャストを紹介します。 まだ少ないですが、良い記事が公開されたら追加します。

gVisorとは

爆発的に普及したコンテナですが、当初のランタイムはセキュリティの問題が色々と指摘されており、CoreOSのrktKata Containersなど、それに応じたプロダクトが幾つかあります。gVisorも、そうしたセキュアなコンテナランタイムのひとつです。

gVisorは明示的なサンドボックスです。ただしその中身がとんでもない。 Googleらしい筋力で、なんとユーザースペースに20万行規模のGoで書かれたカーネルを実現しています。 そしてコンテナ上のシステムコールをフックしつつ、かなりの部分を自前のカーネルで処理してしまう。

このコンテナランタイムは、Open Container Initiative準拠の実装もあり、Dockerと使うこともできます。 ただしそれだけでなく、すでにGoogle App EngineやGoogle Cloud Functionなど、GCPのプロダクトで本番投入されています。

恐らくGCPでは今後、gVisorが広く採用されていき、特にGAEは全てgVisorベースになりそうです。 さらにその規模と設計、ライセンスからすると、Google以外での採用の可能性もあります。

解説集

メディア

Googleがセキュアな分離を提供する軽量コンテナランタイム・サンドボックスの”gVisor”をリリース https://www.infoq.com/jp/news/2018/06/gvisor-container-sandbox

InfoQの記事。 ほどよく周辺事情にも触れ、まとまっています。

プレゼンテーション

20分でわかるgVisor入門 https://www.slideshare.net/uzy_exe/201805gvisorintroduciton

さくらの人による概要。 現在の欠点にも触れています。

次世代のコンテナランタイム!?gVisorのコードを読みながら理解してみる https://speakerdeck.com/niconegoto/ci-shi-dai-falsekontenarantaimu-gvisorfalsekodowodu-minagarali-jie-sitemiru

コードリードもしつつの概要。

Java 8 ランタイム以降のサンドボックスと gVisor https://docs.google.com/presentation/d/1GKkv6GAelTwieGThqnX28f6dc7fXKwDPuypRzCYT_Zk/edit

@apstndbによる、やっぱり AppEngine ja night #3でのプレゼン。 GAE/Java8をに、GCPでの採用や未来についても。

Docker_Meetup_Tokyo_23:gVisorのNetwork Trafficの性能を比較してみた https://speakerdeck.com/makocchi/docker-meetup-tokyo-23-gvisor-network-traffic-benchmark

runscによるDockerでの性能について。

ポッドキャスト

gVisor(LinuxユーザプログラムとしてLinuxカーネルを実装したサンドボックス)とNoahの話 https://turingcomplete.fm/22

Rui Ueyamaのポッドキャスト、Turing Complete FMから。

今回紹介する中では最も濃い。プレゼンで概要見た後におすすめ。 語り合うのがそもそも特濃の2人で、他のVMなどにも触れつつ、gVisorの実装を掘り下げています。

その他

gVisorのechoを読む | プログラマ日記 https://mrasu.hatenablog.jp/entry/2018/05/04/233157

単なるechoをgVisorがどう処理するのか、システムコールのフックからチェック、gVisor実装のecho、ホストへと、流れをひとつずつ確認。

広告