Copyright©2018 NTT Corp. All Rights Reserved.
NTT ソフトウェアイノベーションセンタ
須田 瑛大
KubeCon + CloudNativeCon EU 2018報告
(ランタイム関連,イメージ関連)
Docker Meetup Tokyo #23 (2018/05/15)
https://slideshare.net/AkihiroSuda
2
Copyright©2018 NTT Corp. All Rights Reserved.
• コンテナ関連OSSのメンテナ(いわゆるコミッタ)を務めている
• Docker Moby メンテナ (2016年11月~)
• 2017年4月,OSSプロジェクトとしてのDockerはMobyに名前が変わった
• 商用製品としてのDockerはMobyをベースとして開発されている
• Moby BuildKitメンテナ (2017年夏 プロジェクト発足時~)
• 次世代 `docker build`
• CNCF containerdメンテナ (2017年9月~)
• Kubernetesなどで利用できる次世代コンテナランタイム
: ≒ :
RHEL Fedora
自己紹介
3
Copyright©2018 NTT Corp. All Rights Reserved.
• 会期: 5/2-4
• 会場: Bella Center, Copenhagen, Denmark
• 参加者: 4,000名超 (日本からは50名程度?)
KubeCon + CloudNativeCon EU 2018
App/Dev
BOF
CI/CD
Community
Customizing and Extending Kubernetes
Deep Dives for Projects/SIGs/WGs
gRPC
Hardware Hacking
Intros for Projects/SIGs/WGs
Kubernetes Deep Dives
Machine Learning & Data
Meet the Maintainer
Networking
Observability
Operations
Runtimes
Security+Identity+Signing
Serverless
Service mesh
Storage
...などのセッション
4
Copyright©2018 NTT Corp. All Rights Reserved.
• Container Isolation at Scale (... and introducing gVisor)
• Dawn Chen, Zhengyu He (Google)
• The Route To Rootless Containers
• Julian Friedman (IBM), Ed King (Pivotal)
• Entitlements: Understandable Container Security Controls
• Justin Cormack, Nassim Eddequiouaq (Docker)
• Building Images on Kubernetes – Toward a first class
aproach
• Ben Parees, Steve Speicher (Red Hat), Matt Moore (Google)
紹介する発表
5
Copyright©2018 NTT Corp. All Rights Reserved.
• 発表者: Dawn Chen, Zhengyu He (Google)
• 概要: カーネルを分離すること(gVisor)でセキュリティを強化した,
OCIコンテナランタイムrunscを提案
Container Isolation at Scale (... and introducing gVisor)
• Linuxカーネルをユーザ
ランドで再実装 (Go)
• ptrace版とKVM版がある
• runcの代替として使える
• Meltdownを防ぐデモが
展示されていた
6
Copyright©2018 NTT Corp. All Rights Reserved.
Container Isolation at Scale (... and introducing gVisor)
7
Copyright©2018 NTT Corp. All Rights Reserved.
Container Isolation at Scale (... and introducing gVisor)
8
Copyright©2018 NTT Corp. All Rights Reserved.
• ddで簡易ベンチマーク
• KVM版は動かなかったのでptrace版のみ
• UnixBenchはrunscではクラッシュ
• タイマが正確でない可能性があるが,体感的にもこのくらいの遅さ
手元で試してみた
$ docker run --rm alpine time dd if=/dev/urandom of=/dev/null count=100000
100000+0 records in
100000+0 records out
real 0m 0.37s
user 0m 0.01s
sys 0m 0.34s
$ docker run --rm --runtime=runsc alpine time dd if=/dev/urandom of=/dev/null count=100000
100000+0 records in
100000+0 records out
real 0m 2.63s
user 0m 2.01s
sys 0m 0.62s
9
Copyright©2018 NTT Corp. All Rights Reserved.
• unameは独特の結果
• procfsの内容は絞られている
手元で試してみた
$ docker run --rm --runtime=runsc alpine uname –a
Linux 3708ee967529 3.11.10 #1 SMP Fri Nov 29 10:47:50 PST 2013 x86_64 Linux
$ docker run --rm --runtime=runsc alpine ls –l /proc
total 0
dr-xr-xr-x 2 root root 0 May 10 05:28 1
-r--r--r-- 1 root root 0 May 10 05:28 cpuinfo
-r--r--r-- 0 root root 0 May 10 05:28 filesystems
-r--r--r-- 0 root root 0 May 10 05:28 loadavg
-r--r--r-- 0 root root 0 May 10 05:28 meminfo
lrwxrwxrwx 0 root root 11 May 10 05:28 mounts -> self/mounts
-r--r--r-- 0 root root 0 May 10 05:28 stat
dr-xr-xr-x 4 root root 0 May 10 05:28 sys
-r--r--r-- 1 root root 0 May 10 05:28 uptime
-r--r--r-- 0 root root 0 May 10 05:28 version
10
Copyright©2018 NTT Corp. All Rights Reserved.
• 発表者: Julian Friedman (IBM), Ed King (Pivotal)
• 概要: root権限無しでコンテナランタイムを動かすことで,セキュリティ
を強化する取り組みの紹介
The Route To Rootless Containers
11
Copyright©2018 NTT Corp. All Rights Reserved.
• 課題1: 複数UIDをコンテナ内で利用可能にする
• -> newuidmapを用いる (SUIDビットが要るが)
• 課題2: cgroupsを利用可能にする
• -> 予めrootでchownしておく
• 課題3: CoWファイルシステム
• -> Ubuntuならrootlessでoverlayfsが使える
• 未解決の課題:
• disk quota
• networking
• 注: 発表ではSUIDバイナリが要ると紹介されていたが,実際はSUIDバイナリが無くても
TAPとユーザモードネットワークスタック(slirpなど)である程度実現可能
• cgroupsのchownをどうやるか
The Route To Rootless Containers
12
Copyright©2018 NTT Corp. All Rights Reserved.
• 発表者: Justin Cormack, Nassim Eddequiouaq (Docker)
• 概要: `docker run`の–-privilegedや--cap-addなどのセキュリティ
関連のフラグを簡潔に記述できるようにする取り組みの紹介
Entitlements: Understandable Container Security Controls
13
Copyright©2018 NTT Corp. All Rights Reserved.
Entitlements: Understandable Container Security Controls
14
Copyright©2018 NTT Corp. All Rights Reserved.
Entitlements: Understandable Container Security Controls
15
Copyright©2018 NTT Corp. All Rights Reserved.
Entitlements: Understandable Container Security Controls
• Docker統合の準備は出来ているが,デザインが固まっていないため,まだ
PRは出ていない
• フィードバックを得て,デザインを固めたいとのこと
• Kubernetesへの提案も予定されている
16
Copyright©2018 NTT Corp. All Rights Reserved.
• 発表者: Ben Parees, Steve Speicher (Red Hat), Matt Moore (Google)
• 概要: Kubernetes上でコンテナイメージをビルドする取り組みの紹介,標準化
の呼びかけ
Building Images on Kubernetes – Toward a first class aproach
17
Copyright©2018 NTT Corp. All Rights Reserved.
Building Images on Kubernetes – Toward a first class aproach
18
Copyright©2018 NTT Corp. All Rights Reserved.
• Kubernetesに関係するイメージビルドツールが色々出てきた
• Kubernetes-nativeな方式で標準化したい
Building Images on Kubernetes – Toward a first class aproach
OpenShift
CBI
Argo (dind-sidecar-example)
Google Container Builder

KubeCon EU報告(ランタイム関連,イメージ関連)

  • 1.
    Copyright©2018 NTT Corp.All Rights Reserved. NTT ソフトウェアイノベーションセンタ 須田 瑛大 KubeCon + CloudNativeCon EU 2018報告 (ランタイム関連,イメージ関連) Docker Meetup Tokyo #23 (2018/05/15) https://slideshare.net/AkihiroSuda
  • 2.
    2 Copyright©2018 NTT Corp.All Rights Reserved. • コンテナ関連OSSのメンテナ(いわゆるコミッタ)を務めている • Docker Moby メンテナ (2016年11月~) • 2017年4月,OSSプロジェクトとしてのDockerはMobyに名前が変わった • 商用製品としてのDockerはMobyをベースとして開発されている • Moby BuildKitメンテナ (2017年夏 プロジェクト発足時~) • 次世代 `docker build` • CNCF containerdメンテナ (2017年9月~) • Kubernetesなどで利用できる次世代コンテナランタイム : ≒ : RHEL Fedora 自己紹介
  • 3.
    3 Copyright©2018 NTT Corp.All Rights Reserved. • 会期: 5/2-4 • 会場: Bella Center, Copenhagen, Denmark • 参加者: 4,000名超 (日本からは50名程度?) KubeCon + CloudNativeCon EU 2018 App/Dev BOF CI/CD Community Customizing and Extending Kubernetes Deep Dives for Projects/SIGs/WGs gRPC Hardware Hacking Intros for Projects/SIGs/WGs Kubernetes Deep Dives Machine Learning & Data Meet the Maintainer Networking Observability Operations Runtimes Security+Identity+Signing Serverless Service mesh Storage ...などのセッション
  • 4.
    4 Copyright©2018 NTT Corp.All Rights Reserved. • Container Isolation at Scale (... and introducing gVisor) • Dawn Chen, Zhengyu He (Google) • The Route To Rootless Containers • Julian Friedman (IBM), Ed King (Pivotal) • Entitlements: Understandable Container Security Controls • Justin Cormack, Nassim Eddequiouaq (Docker) • Building Images on Kubernetes – Toward a first class aproach • Ben Parees, Steve Speicher (Red Hat), Matt Moore (Google) 紹介する発表
  • 5.
    5 Copyright©2018 NTT Corp.All Rights Reserved. • 発表者: Dawn Chen, Zhengyu He (Google) • 概要: カーネルを分離すること(gVisor)でセキュリティを強化した, OCIコンテナランタイムrunscを提案 Container Isolation at Scale (... and introducing gVisor) • Linuxカーネルをユーザ ランドで再実装 (Go) • ptrace版とKVM版がある • runcの代替として使える • Meltdownを防ぐデモが 展示されていた
  • 6.
    6 Copyright©2018 NTT Corp.All Rights Reserved. Container Isolation at Scale (... and introducing gVisor)
  • 7.
    7 Copyright©2018 NTT Corp.All Rights Reserved. Container Isolation at Scale (... and introducing gVisor)
  • 8.
    8 Copyright©2018 NTT Corp.All Rights Reserved. • ddで簡易ベンチマーク • KVM版は動かなかったのでptrace版のみ • UnixBenchはrunscではクラッシュ • タイマが正確でない可能性があるが,体感的にもこのくらいの遅さ 手元で試してみた $ docker run --rm alpine time dd if=/dev/urandom of=/dev/null count=100000 100000+0 records in 100000+0 records out real 0m 0.37s user 0m 0.01s sys 0m 0.34s $ docker run --rm --runtime=runsc alpine time dd if=/dev/urandom of=/dev/null count=100000 100000+0 records in 100000+0 records out real 0m 2.63s user 0m 2.01s sys 0m 0.62s
  • 9.
    9 Copyright©2018 NTT Corp.All Rights Reserved. • unameは独特の結果 • procfsの内容は絞られている 手元で試してみた $ docker run --rm --runtime=runsc alpine uname –a Linux 3708ee967529 3.11.10 #1 SMP Fri Nov 29 10:47:50 PST 2013 x86_64 Linux $ docker run --rm --runtime=runsc alpine ls –l /proc total 0 dr-xr-xr-x 2 root root 0 May 10 05:28 1 -r--r--r-- 1 root root 0 May 10 05:28 cpuinfo -r--r--r-- 0 root root 0 May 10 05:28 filesystems -r--r--r-- 0 root root 0 May 10 05:28 loadavg -r--r--r-- 0 root root 0 May 10 05:28 meminfo lrwxrwxrwx 0 root root 11 May 10 05:28 mounts -> self/mounts -r--r--r-- 0 root root 0 May 10 05:28 stat dr-xr-xr-x 4 root root 0 May 10 05:28 sys -r--r--r-- 1 root root 0 May 10 05:28 uptime -r--r--r-- 0 root root 0 May 10 05:28 version
  • 10.
    10 Copyright©2018 NTT Corp.All Rights Reserved. • 発表者: Julian Friedman (IBM), Ed King (Pivotal) • 概要: root権限無しでコンテナランタイムを動かすことで,セキュリティ を強化する取り組みの紹介 The Route To Rootless Containers
  • 11.
    11 Copyright©2018 NTT Corp.All Rights Reserved. • 課題1: 複数UIDをコンテナ内で利用可能にする • -> newuidmapを用いる (SUIDビットが要るが) • 課題2: cgroupsを利用可能にする • -> 予めrootでchownしておく • 課題3: CoWファイルシステム • -> Ubuntuならrootlessでoverlayfsが使える • 未解決の課題: • disk quota • networking • 注: 発表ではSUIDバイナリが要ると紹介されていたが,実際はSUIDバイナリが無くても TAPとユーザモードネットワークスタック(slirpなど)である程度実現可能 • cgroupsのchownをどうやるか The Route To Rootless Containers
  • 12.
    12 Copyright©2018 NTT Corp.All Rights Reserved. • 発表者: Justin Cormack, Nassim Eddequiouaq (Docker) • 概要: `docker run`の–-privilegedや--cap-addなどのセキュリティ 関連のフラグを簡潔に記述できるようにする取り組みの紹介 Entitlements: Understandable Container Security Controls
  • 13.
    13 Copyright©2018 NTT Corp.All Rights Reserved. Entitlements: Understandable Container Security Controls
  • 14.
    14 Copyright©2018 NTT Corp.All Rights Reserved. Entitlements: Understandable Container Security Controls
  • 15.
    15 Copyright©2018 NTT Corp.All Rights Reserved. Entitlements: Understandable Container Security Controls • Docker統合の準備は出来ているが,デザインが固まっていないため,まだ PRは出ていない • フィードバックを得て,デザインを固めたいとのこと • Kubernetesへの提案も予定されている
  • 16.
    16 Copyright©2018 NTT Corp.All Rights Reserved. • 発表者: Ben Parees, Steve Speicher (Red Hat), Matt Moore (Google) • 概要: Kubernetes上でコンテナイメージをビルドする取り組みの紹介,標準化 の呼びかけ Building Images on Kubernetes – Toward a first class aproach
  • 17.
    17 Copyright©2018 NTT Corp.All Rights Reserved. Building Images on Kubernetes – Toward a first class aproach
  • 18.
    18 Copyright©2018 NTT Corp.All Rights Reserved. • Kubernetesに関係するイメージビルドツールが色々出てきた • Kubernetes-nativeな方式で標準化したい Building Images on Kubernetes – Toward a first class aproach OpenShift CBI Argo (dind-sidecar-example) Google Container Builder