Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
gVisorを使おう!/ Let's use gVisor!
Search
Kattyan
July 13, 2023
Programming
0
180
gVisorを使おう!/ Let's use gVisor!
Kattyan
July 13, 2023
Tweet
Share
More Decks by Kattyan
See All by Kattyan
QPACK って何?/What is QPACK?
sou1118
0
720
スライド操作用リモコンを作った話/Making-a-remote-control-for-slide-operation
sou1118
0
360
マイナンバーカードを用いた認証について/Authentication-using-the-My-Number-Card
sou1118
0
800
マイナンバーカードの有効利用法を探る / Finding-ways-to-use-my-number-card
sou1118
0
310
少し幸せになれるスマートなリモコンを作る / Making-a-Smart-remote-controller
sou1118
0
360
Other Decks in Programming
See All in Programming
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
25
21k
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
320
20 years of Symfony, what's next?
fabpot
2
310
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
0
270
All(?) About Point Sets
hole
0
270
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
6
2k
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
150
AWS CDKの推しポイントN選
akihisaikeda
1
240
connect-python: convenient protobuf RPC for Python
anuraaga
0
360
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
270
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
180
Microservices rules: What good looks like
cer
PRO
0
590
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Context Engineering - Making Every Token Count
addyosmani
9
470
Docker and Python
trallard
46
3.7k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Navigating Team Friction
lara
191
16k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Transcript
gVisorを使おう! Kattyan 1
自己紹介 インターネット技術とネットワークセキュリティ,低いところに興味 GitHub: sou1118 自己紹介 2
コンテナとは? コンテナは,アプリケーションとその依存関係をパッケージ化し,独立 した環境で実行するための技術 コンテナは分離された環境を提供し,これによりアプリケーションは他 のシステムから独立して動作 NameSpaceを使用して,この分離された空間に対するアクセス制御 を行う cgroupsを使用して,リソースの制限(CPU,メモリなど)を行う コンテナについて 3
コンテナランタイムとは? コンテナの作成と管理を担当するソフトウェア 以下の4層で構成される 1. 管理コマンド 2. 高レベルコンテナランタイム 3. 低レベルコンテナランタイム 4.
Linux カーネル コンテナランタイムについて 4
例えば,Dockerを使用した場合 1. Docker CLI 2. containerd 3. runC 4. Linux
カーネル 5
低レベルコンテナランタイムとは? Linux カーネルの上で直接コンテナを作成,実行 ホスト OS の特権権限が必要 runC に脆弱性があると,ホスト OS の特権権限が侵害される可能性
がある 最近では,runC を置き換える動きが活発 高レベルコンテナランタイムから低レベルコンテナランタイムへの通信 は,OCI (Open Container Initiative) に基づく gVisor, Firecracker, Kata などが低レベルコンテナランタイムの例と して挙げられる 低レベルコンテナランタイムについて 6
gVisorとは? runC の代わりとして開発された低レベルコンテナランタイム OCI に準拠 システムコールの大部分を,ホストカーネルに直接渡さずに,gVisorの ゲストカーネルで実行 コンテナがホストから完全に分離(サンドボックス化) Go 言語で書かれており,メモリ安全を保証
GCP の App Engine や Cloud Run での実用経験があり Dockerで利用する場合は, daemon.json ファイルを編集することで設 定可能 gVisorについて 7
おしまい 8