Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Dockerだけではない
コンテナのはなし
2017.07.05 @ Adtech Developer Conferenece
Presented By Katsunori Kanda(@potix2)
⾃⼰紹介
神⽥勝規(かんだかつのり)@potix2
AI Studio Devグループ 責任者
OS/分散システムが専⾨
⾃律分散ゼミ
この話のきっかけ
kubernetes/cri-o
kubernetes/cri-o
• オーケストレーションツール全盛
と⾔われている状況で何故コンテ
ナランタイムに関わる新規プロジェ
クトを⽴ち上げたのか?
• OCIとコンテナ標準についてわ
かっていないとこのプロジェクト
の背景がわからない
コンテナ仮想化とその歴史
仮想化とは?
Hardware
Host OS
Hypervisor
Guest OS
Virtual Machine
Application
Hardware
Hypervisor
Guest OS
Virtual Machine
Appli...
コンテナ標準に関わる出来事
2013 2014 2015 2016
Docker/CoreOS誕⽣ OCI設⽴
コンテナ標準策定
Docker1.0リリース
Appc発表
2017
docker swarmの統合
コンテナ標準に関わる出来事
2013 2014 2015 2016
Docker/CoreOS誕⽣ OCI設⽴
コンテナ標準策定
Docker1.0リリース
Appc発表
2017
docker swarmの統合
Local
Docker Registry
Docker
• 前⾝はdotCloud
• 2013年にリリース
• イメージ構築ツール⼀式
• コンテナ実⾏ランタイム
Image
Dockerfile
build
Remote
Docker
Re...
CoreOS
• セキュリティとコンテナを中⼼としたテックカンパニー
• OSS: etcd, ContainerLinux, rkt(Rocket), flannel
• Commercial Products: Quay, Tectonic(...
コンテナ標準に関わる出来事
2013 2014 2015 2016
Docker/CoreOS誕⽣ OCI設⽴
コンテナ標準策定
Docker1.0リリース
Appc発表
2017
docker swarmの統合
App Container Specの登場
• CoreOSが中⼼となって作成されたオープンな仕様(deprecated)
• App Container Image Format(ACI)
• App Container Executor(A...
Appc vs Docker
コンテナ仕様分裂の危機
コンテナ標準に関わる出来事
2013 2014 2015 2016
Docker/CoreOS誕⽣ OCI設⽴
コンテナ標準策定
Docker1.0リリース
Appc発表
2017
docker swarmの統合
Open Container Intiative設⽴
• 2015年に設⽴された
• Linux Foundationが管理
• コンテナの仕様をオープンに保つことを⽬的としている
• メンバー: Docker, CoreOS, Amazon,...
コンテナ標準に関わる出来事
2013 2014 2015 2016
Docker/CoreOS誕⽣ OCI設⽴
コンテナ標準策定
Docker1.0リリース
Appc発表
2017
docker swarmの統合
OCI コンテナ標準
• 現在、2つの仕様が存在する
• OCI Image Format Specification(最新版: v1.0.0-rc6)
• OCI Runtime Specification(最新版: v1.0.0-rc5)
• ...
runtime-spec
• 仕様に含まれるもの
• 実⾏環境の設定 (process, mountsなど)
• コンテナのライフサイクル: create, start, kill, deleteなど
• 対象プラットフォーム
• Linux/...
image-spec
• 策定が始まるのがruntime-specより遅かった
• OCI Imageの仕様
• manifest, image index, filesystem layouts, configurationが含まれ
る
• コン...
docker imageの中⾝
$ docker pull busybox:latest
$ docker save busybox:latest | tar t
4669b4a8a33679a912d3ae167e12c0aaf5deafda...
AppcとOCI Specの⽐較
App Container Image Format(ACI)
App Container Exector(ACE)
App Container Image Discovery
OCI Image Format...
2016年の重要な出来事
Docker SwarmとDockerの統合
• 2016.06 Docker公式ブログ
• Docker 1.12にオーケストレーション機能
を統合
https://blog.docker.com/2016/06/docker-1-12-bu...
オーケストレーションの時代へ
Docker Swarm
vs
Kubernetes
マサカリを恐れず言うと・・・
オーケストレーションとは?
• 複数ホストの設定、構築、配備を⾃動化すること(明確な定義はなさそう)
• ちょっと前までは、このあたりのツールを指すことが多かった
• Chef, Puppet, Ansible, Fabric, Capistr...
Kubernetes
• コンテナプラットフォーム
• Googleが中⼼となって開発
• GKEなどいくつかのマネージ
ドサービスがある
Master
Node
Kubelet
Pod
Pod
kubectl
Kubernetesとコンテナランタイム
• Docker以外のコンテナランタイムもサポートしている
• rkt: simple, secure
• hyper: hypervisor-based
• 複数ランタイムのサポートによって⽤途や環境...
複数コンテナランタイムサポートの課題と解決⽅法
コンテナランタイムはkubeletと深く結びついている
コンテナランタイム作成者はkubeletの内部構造を理解する必要がある
コンテナランタイムとKubeletの間に共通I/Fを設けて依存度を下...
POD
CRIのアーキテクチャ
kubelet CRI
container
runtime
container
runtime
container
container
container
POD
container
container
cont...
CRIの現状
• 2016.12.09の公式ブログから
• early stage
• CRIとコンテナランタイムのインテグレー
ションプロジェクトが始まっている
• cri-o (for OCI runtime)
• rktlet (for ...
そういえば、ECSはどうなの?
ECSはどうなっているのか?
• amazon-ecs-agentというリポジトリが公開されている
• Docker Clientに依存している
今後どうなっていくのか?
• Dockerへの依存度を低くしようという動きが加速する?
• Dockerがカバーしている範囲が広すぎる(過度にDocker依存)
• イメージビルドツールなど
• Image Distributionの問題
• ...
Upcoming SlideShare
Loading in …5
×

Dockerだけではないコンテナのはなし

2,751 views

Published on

kubernetesのCRIとは何か?という疑問に応えるべく、コンテナの歴史とOCIコンテナ標準仕様について整理をした。

Published in: Technology
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Dockerだけではないコンテナのはなし

  1. 1. Dockerだけではない コンテナのはなし 2017.07.05 @ Adtech Developer Conferenece Presented By Katsunori Kanda(@potix2)
  2. 2. ⾃⼰紹介 神⽥勝規(かんだかつのり)@potix2 AI Studio Devグループ 責任者 OS/分散システムが専⾨ ⾃律分散ゼミ
  3. 3. この話のきっかけ
  4. 4. kubernetes/cri-o
  5. 5. kubernetes/cri-o • オーケストレーションツール全盛 と⾔われている状況で何故コンテ ナランタイムに関わる新規プロジェ クトを⽴ち上げたのか? • OCIとコンテナ標準についてわ かっていないとこのプロジェクト の背景がわからない
  6. 6. コンテナ仮想化とその歴史
  7. 7. 仮想化とは? Hardware Host OS Hypervisor Guest OS Virtual Machine Application Hardware Hypervisor Guest OS Virtual Machine Application Type1 Type2 Bin/Libs Bin/Libs Hardware Host OS Bins/Libs Application Container Runtime サーバー仮想化 コンテナ仮想化 Host OSの機能を使った隔離 (Linux: cgroups, capabilities, namespaces, etc)
  8. 8. コンテナ標準に関わる出来事 2013 2014 2015 2016 Docker/CoreOS誕⽣ OCI設⽴ コンテナ標準策定 Docker1.0リリース Appc発表 2017 docker swarmの統合
  9. 9. コンテナ標準に関わる出来事 2013 2014 2015 2016 Docker/CoreOS誕⽣ OCI設⽴ コンテナ標準策定 Docker1.0リリース Appc発表 2017 docker swarmの統合
  10. 10. Local Docker Registry Docker • 前⾝はdotCloud • 2013年にリリース • イメージ構築ツール⼀式 • コンテナ実⾏ランタイム Image Dockerfile build Remote Docker Registry push pull Image container run
  11. 11. CoreOS • セキュリティとコンテナを中⼼としたテックカンパニー • OSS: etcd, ContainerLinux, rkt(Rocket), flannel • Commercial Products: Quay, Tectonic(kubernetes)
  12. 12. コンテナ標準に関わる出来事 2013 2014 2015 2016 Docker/CoreOS誕⽣ OCI設⽴ コンテナ標準策定 Docker1.0リリース Appc発表 2017 docker swarmの統合
  13. 13. App Container Specの登場 • CoreOSが中⼼となって作成されたオープンな仕様(deprecated) • App Container Image Format(ACI) • App Container Executor(ACE) • App Container Image Discovery • https://github.com/appc/spec • Linux: Rocket(rkt), FreeBSD: Jetpackなどいくつか実装がある •Docker Inc.は不参加
  14. 14. Appc vs Docker
  15. 15. コンテナ仕様分裂の危機
  16. 16. コンテナ標準に関わる出来事 2013 2014 2015 2016 Docker/CoreOS誕⽣ OCI設⽴ コンテナ標準策定 Docker1.0リリース Appc発表 2017 docker swarmの統合
  17. 17. Open Container Intiative設⽴ • 2015年に設⽴された • Linux Foundationが管理 • コンテナの仕様をオープンに保つことを⽬的としている • メンバー: Docker, CoreOS, Amazon, Google, Red Hat, IBM …
  18. 18. コンテナ標準に関わる出来事 2013 2014 2015 2016 Docker/CoreOS誕⽣ OCI設⽴ コンテナ標準策定 Docker1.0リリース Appc発表 2017 docker swarmの統合
  19. 19. OCI コンテナ標準 • 現在、2つの仕様が存在する • OCI Image Format Specification(最新版: v1.0.0-rc6) • OCI Runtime Specification(最新版: v1.0.0-rc5) • https://github.com/opencontainers
  20. 20. runtime-spec • 仕様に含まれるもの • 実⾏環境の設定 (process, mountsなど) • コンテナのライフサイクル: create, start, kill, deleteなど • 対象プラットフォーム • Linux/Solaris/Window • 参照実装として、runCがある
  21. 21. image-spec • 策定が始まるのがruntime-specより遅かった • OCI Imageの仕様 • manifest, image index, filesystem layouts, configurationが含まれ る • コンテナの構築から実⾏の準備までをカバーしている • ただし、コンテナの配布⽅法に関しては仕様に含まれていない
  22. 22. docker imageの中⾝ $ docker pull busybox:latest $ docker save busybox:latest | tar t 4669b4a8a33679a912d3ae167e12c0aaf5deafdaf8962c66d37b990782f5f990/ 4669b4a8a33679a912d3ae167e12c0aaf5deafdaf8962c66d37b990782f5f990/VERSION 4669b4a8a33679a912d3ae167e12c0aaf5deafdaf8962c66d37b990782f5f990/json 4669b4a8a33679a912d3ae167e12c0aaf5deafdaf8962c66d37b990782f5f990/layer.tar c30178c5239f2937c21c261b0365efcda25be4921ccb95acd63beeeb78786f27.json manifest.json repositories (注意)2017.07.05時点で、docker saveはOCI Image Specで出力できないが、 https://github.com/moby/moby/pull/33355 などで実装は進んでいる
  23. 23. AppcとOCI Specの⽐較 App Container Image Format(ACI) App Container Exector(ACE) App Container Image Discovery OCI Image Format Specification OCI Runtime Specification ??? appc OCI OCIのコンテナ仕様では、 コンテナ配布に関する内容が含まれていない
  24. 24. 2016年の重要な出来事
  25. 25. Docker SwarmとDockerの統合 • 2016.06 Docker公式ブログ • Docker 1.12にオーケストレーション機能 を統合 https://blog.docker.com/2016/06/docker-1-12-built-in-orchestration/
  26. 26. オーケストレーションの時代へ
  27. 27. Docker Swarm vs Kubernetes マサカリを恐れず言うと・・・
  28. 28. オーケストレーションとは? • 複数ホストの設定、構築、配備を⾃動化すること(明確な定義はなさそう) • ちょっと前までは、このあたりのツールを指すことが多かった • Chef, Puppet, Ansible, Fabric, Capistrano • いまは、コンテナオーケストレーションという意味で使われるケースが増え ている。このあたりのシステム。 • Kubernetes, Docker Swarm, Amazon ECS, DC/OS(Mesos)
  29. 29. Kubernetes • コンテナプラットフォーム • Googleが中⼼となって開発 • GKEなどいくつかのマネージ ドサービスがある Master Node Kubelet Pod Pod kubectl
  30. 30. Kubernetesとコンテナランタイム • Docker以外のコンテナランタイムもサポートしている • rkt: simple, secure • hyper: hypervisor-based • 複数ランタイムのサポートによって⽤途や環境への柔軟性が⾼まる • と、同時にDockerへの依存を減らしたい(ランタイムがDocker⼀択と いう状況を避けたい)
  31. 31. 複数コンテナランタイムサポートの課題と解決⽅法 コンテナランタイムはkubeletと深く結びついている コンテナランタイム作成者はkubeletの内部構造を理解する必要がある コンテナランタイムとKubeletの間に共通I/Fを設けて依存度を下げる Container Runtime Interface (CRI) 解決方法 課題
  32. 32. POD CRIのアーキテクチャ kubelet CRI container runtime container runtime container container container POD container container container Kubernetes Master Worker NodeMaster Node gRPC gRPC DriverDriver
  33. 33. CRIの現状 • 2016.12.09の公式ブログから • early stage • CRIとコンテナランタイムのインテグレー ションプロジェクトが始まっている • cri-o (for OCI runtime) • rktlet (for rkt) • frakti (for hyper) • docker CRI shim http://blog.kubernetes.io/2016/12/container-runtime-interface-cri-in-kubernetes.html
  34. 34. そういえば、ECSはどうなの?
  35. 35. ECSはどうなっているのか? • amazon-ecs-agentというリポジトリが公開されている • Docker Clientに依存している
  36. 36. 今後どうなっていくのか? • Dockerへの依存度を低くしようという動きが加速する? • Dockerがカバーしている範囲が広すぎる(過度にDocker依存) • イメージビルドツールなど • Image Distributionの問題 • いつ、どこからイメージを取得するのか?

×