Submit Search
Upload
20分でわかるgVisor入門
•
37 likes
•
22,178 views
Shuji Yamada
Follow
2018年5月28日開催 『Container SIG 2018 Summer』のスライド資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 34
Download now
Download to read offline
Recommended
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
NTT DATA Technology & Innovation
containerdの概要と最近の機能
containerdの概要と最近の機能
Kohei Tokunaga
Recommended
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
NTT DATA Technology & Innovation
containerdの概要と最近の機能
containerdの概要と最近の機能
Kohei Tokunaga
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
Preferred Networks
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話
imurata8203
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
zaki4649
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~
Ryosuke Uchiyama
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Saki Homma
More Related Content
What's hot
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
Preferred Networks
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話
imurata8203
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
zaki4649
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
What's hot
(20)
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
Similar to 20分でわかるgVisor入門
コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~
Ryosuke Uchiyama
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Saki Homma
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
Koto Shigeru
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
Akihiro Suda
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法
Shunsuke Kikuchi
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
Saki Homma
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
Hajimete k3s agenda_201008
Hajimete k3s agenda_201008
Junji Nishihara
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
Akira Nagata
Rootlessコンテナ
Rootlessコンテナ
Akihiro Suda
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
Akihiro Suda
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
Masashi Shinbara
Hajimete k3s agenda_200730
Hajimete k3s agenda_200730
Junji Nishihara
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
Takashi Kanai
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 Spring
Go Chiba
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Takashi Kanai
Kubernetes Cluster Adminやってました #con_rider
Kubernetes Cluster Adminやってました #con_rider
Yahoo!デベロッパーネットワーク
Web サービス インフラの近未来
Web サービス インフラの近未来
Syuichi Murashima
Similar to 20分でわかるgVisor入門
(20)
コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Hajimete k3s agenda_201008
Hajimete k3s agenda_201008
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
Rootlessコンテナ
Rootlessコンテナ
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
Hajimete k3s agenda_200730
Hajimete k3s agenda_200730
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 Spring
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes Cluster Adminやってました #con_rider
Kubernetes Cluster Adminやってました #con_rider
Web サービス インフラの近未来
Web サービス インフラの近未来
More from Shuji Yamada
GitHub Enterpriseの導入事例と実践GitHub Actions
GitHub Enterpriseの導入事例と実践GitHub Actions
Shuji Yamada
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
Shuji Yamada
現場!実物!実践!マルチクラスタを運用するときの課題とコツ
現場!実物!実践!マルチクラスタを運用するときの課題とコツ
Shuji Yamada
Arukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
Shuji Yamada
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
Shuji Yamada
10分でわかる marathon-lb
10分でわかる marathon-lb
Shuji Yamada
コンテナのユースケース考察
コンテナのユースケース考察
Shuji Yamada
Kanban 301「プロセスマネジメント(成長エンジン)」
Kanban 301「プロセスマネジメント(成長エンジン)」
Shuji Yamada
Kanban 101「明日から使えるかもしれないカンバン」
Kanban 101「明日から使えるかもしれないカンバン」
Shuji Yamada
Velocity - Lean, Velocity and Anti-Fragile 「ボトルネックを飼い慣らせ!」
Velocity - Lean, Velocity and Anti-Fragile 「ボトルネックを飼い慣らせ!」
Shuji Yamada
自動テストによって生み出される価値
自動テストによって生み出される価値
Shuji Yamada
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
Shuji Yamada
お手軽OpenFlow試験環境 Mininet
お手軽OpenFlow試験環境 Mininet
Shuji Yamada
Sensu -The Next Generateion Monitoring Framework-
Sensu -The Next Generateion Monitoring Framework-
Shuji Yamada
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
Shuji Yamada
2015-01-27 Introduction to Docker
2015-01-27 Introduction to Docker
Shuji Yamada
More from Shuji Yamada
(16)
GitHub Enterpriseの導入事例と実践GitHub Actions
GitHub Enterpriseの導入事例と実践GitHub Actions
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
現場!実物!実践!マルチクラスタを運用するときの課題とコツ
現場!実物!実践!マルチクラスタを運用するときの課題とコツ
Arukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
10分でわかる marathon-lb
10分でわかる marathon-lb
コンテナのユースケース考察
コンテナのユースケース考察
Kanban 301「プロセスマネジメント(成長エンジン)」
Kanban 301「プロセスマネジメント(成長エンジン)」
Kanban 101「明日から使えるかもしれないカンバン」
Kanban 101「明日から使えるかもしれないカンバン」
Velocity - Lean, Velocity and Anti-Fragile 「ボトルネックを飼い慣らせ!」
Velocity - Lean, Velocity and Anti-Fragile 「ボトルネックを飼い慣らせ!」
自動テストによって生み出される価値
自動テストによって生み出される価値
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
お手軽OpenFlow試験環境 Mininet
お手軽OpenFlow試験環境 Mininet
Sensu -The Next Generateion Monitoring Framework-
Sensu -The Next Generateion Monitoring Framework-
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
2015-01-27 Introduction to Docker
2015-01-27 Introduction to Docker
20分でわかるgVisor入門
1.
Container SIG 2018
Summer さくらインターネット株式会社 Shuji Yamada (山田 修司) @uzyexeMay 28, 2018 20分でわかる gVisor入門
2.
Shuji Yamada • さくらインターネット所属 •
コンテナホスティング「Arukas」担当 • 以前は「さくらのクラウド」運用担当 • 好きなクラスタ Mesos/Marathon (山田 修司) Trust me. I am Engineer _(┐¦_ ε:) 2
3.
• アプリケーションをパッケージングして展開。 • コンテナはホストカーネルを共有。 •
オーバーヘッドほぼ0。 3 Build Ship Run Docker コンテナのおさらい
4.
コンテナは ホストカーネルを共有 4
5.
5 VM B VM
CVM A Server Hardware Linux Kernel Hyper Visor Bins/Libs App Kernel Bins/Libs App Kernel Bins/Libs App Kernel
6.
6 Container B Container
CContainer A Server Hardware Linux Kernel Docker Engine Bins/Libs App Bins/Libs App Bins/Libs App
7.
7 Container B Container
CContainer A Server Hardware Linux Kernel Docker Engine Bins/Libs App Bins/Libs App Bins/Libs App
8.
Docker Engine Linux Kernel 8 Container
B Container CContainer A Server Hardware Bins/Libs App Bins/Libs App Bins/Libs App
9.
• ゲストプロセスはホストカーネル上で実行。 • ゲストプロセスを十分には隔離していない。 •
単一の脆弱性で、ホストを破壊可能。 9 コンテナはサンドボックスではない Docker Engine Container B Container CContainer A Server Hardware Linux Kernel Bins/Libs App Bins/Libs App Bins/Libs App
10.
“Containers do not
contain” -Dan Walsh, 2014- 10
11.
• VMによるコンテナ隔離 • オーバーヘッドが大きい。 •
IaaS 上では、Nested Virtualization が必要条件。 • seccomp、SELinux、AppArmor • 事後防衛的(脆弱性を突かれたときだけ有効) 11 いくつかの防護策
12.
過去、コンテナにも影響した重大な脆弱性 • CVE-2016-5195 DirtyCow •
コンテナから脱獄してホストのroot権限を奪取可能 • CVE-2017-5753/5715/5754 Spectre/Meltdown • ホストのカーネルメモリ漏洩 12
13.
ルールベース・アクセス制御の特徴 13 Application Host Kernel Limited system
calls Hardware
14.
ルールベース・アクセス制御の課題 14 • 完璧なポリシーの定義は現実的には困難。 • ポリシーを過剰に設定しやすい。 •
逆にポリシーが不足することもある。 • カーネルの脆弱性は防げない。 • 他の防護策と掛け合わせた運用が不可欠。 Application Host Kernel Limited system calls Hardware
15.
VMの特徴 • VM =
ハードウェア仮想化してゲストに提供 • VM内で動作するプロセスは完全に隔離。 • アプリケーション互換性も高い。 • 完全仮想化なら… • Meltdown/Spector にも有効。 15 Application Guest Kernel System calls VMM Virtual hardware System calls Host Kernel Hardware
16.
VMの課題 • HyperVisor +
VMM + Guest Kernel • オーバーヘッドが大きい。 • パフォーマンスが劣化。 • リソース配備の柔軟性が低下 • CPUやメモリリソースを固定的に確保。 • 他のコンテナとのリソース共有不可。 16 Application Guest Kernel System calls VMM Virtual hardware System calls Host Kernel Hardware
17.
VMの課題 • 1VM:1Container 構成は煩雑 •
エージェントの追加インストールが必要。 • 監視エージェント • サービスディスカバリ用エージェント • モノリシックなアプリ構成になりがち。 17 Application Guest Kernel System calls VMM Virtual hardware System calls Host Kernel Hardware
18.
gVisor とは • ユーザー空間で実行可能なゲストカーネル。 •
アプリケーションとホストカーネルを分離。 • およそ20万行のGo言語で実装。 • ptrace版、KVM版がある。 • Docker、Kubernetes に対応。 (runsc というOCIランタイムで提供) 18 Application gVisor System calls Host Kernel Limited system calls Hardware
19.
Docker Engine Containerd runcrunc runc
20.
Docker Engine Containerd runscrunsc runsc
21.
gVisor のパフォーマンス 21 150ms 15MB コンテナ起動にかかる時間
メモリのオーバーヘッド
22.
User Kernel Host Kernel Application Gofer (File system
proxy) Sentry (Guest Kernel) ptrace seccomp 9P runsc
23.
• ゲストカーネルのシステムコールを奪取(ptrace) • 奪取したシステムコールをフィルタ(seccomp) •
ゲストカーネルでシステムコールを命令置換(gvisor) • 無害なシステムコールが、ホストカーネルに転送。 gVisor の挙動 23 「Linuxの機能で、Linuxを実装している。」
24.
Sentry プロセス • ゲストカーネル(互換カーネル) •
空のユーザー名前空間 (User Namespace) で実行。 • ゲストのシステムコールを待ち受ける。 • seccomp でホストに転送するシステムコールを制限。 • 安全なユーザコード実行とシステムコール処理を担当。 24
25.
Gofer プロセス • ファイルシステムプロキシ •
サンドボックスを経由するファイルシステム操作を担当。 • アプリの代わりにホストのファイルをオープン。 • オープンしたファイルを Sentry に転送。 (Sentry はホストファイルに直接アクセスしない。) 25
26.
netstack • gVisor 独自のネットワークスタック •
ネットワーク通信は Sentry が担当。 • ホストのネットワークスタックからは完全に隔離。 • データリンク層のフレームは、Dockerが持つネットワー ク名前空間内にある仮想デバイスに直接書き込み。 • ネットワーク・パススルーもサポート。 26
27.
gVisor の技術的トレードオフ 27 • コンテナのセキュリティは向上 •
ホストカーネルを隠 。 • VM相当のプロセス隔離を実現。 • エミュレーションによるパフォーマンス劣化 • アプリケーション互換性が低下。 • 頻繁なシステムコールでは性能が劣化。 Application gVisor System calls Host Kernel Limited system calls Hardware
28.
• ptrace のパフォーマンスがネック。 •
将来的には、ptrace 以外のものに置き換わるかも。 • (実験的に)KVM を使用するアプローチも選べる。 28 まだまだ課題はある・・・
29.
• 約200のシステムコールをサポートしているが・・・ • 未実装のシステムコールも多い •
System V 共有メモリ(PostgreSQLが動かない…) • SOCK_RAW(Pingが動かない…) • etc… • パフォーマンス確認に使いたいベンチマークも動かない… 29 まだまだ課題はある・・・
30.
• GPUに非対応 • どのようなシステムコールが送信されるかが不明瞭。 •
バイナリBLOBなドライバはVMでの隔離がおすすめ • ルールベースのポリシーでの保護が困難。 • 脆弱性を勝手に修正できない。 30 まだまだ課題はある・・・
31.
31 ま と め
32.
• VM(ハードウェア仮想化) • リソースやプロセスを完全に隔離可能。 •
コンテナ(ネームスペース分離) • 単一の脆弱性で収容ホスト内部を破壊される。 • gVisor(ゲストカーネル、互換カーネル) • ゲストカーネルの特権を奪取されても被害は最小限。 32 まとめ
33.
Quick Start • Go
to: https://github.com/google/gvisor • Build and Install gVisor 33 $ docker run --runtime=runsc hello-world $ docker run -d --runtime=runsc -p 80:80 nginx
34.
THANK YOU!
Download now