Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
evolution of container runtime : containerD (Ja...
Search
Kunal Kushwaha
June 15, 2017
Technology
0
150
evolution of container runtime : containerD (Japanese version)
Kunal Kushwaha
June 15, 2017
Tweet
Share
More Decks by Kunal Kushwaha
See All by Kunal Kushwaha
Traditional Databases in Kubernetes
kunalkushwaha
2
2k
runc init process of double fork
kunalkushwaha
1
8.6k
Managing Virtual Machines on Kubernetes
kunalkushwaha
2
2.4k
Compose on Kubernetes
kunalkushwaha
3
2.5k
Docker birthday #5 Intro
kunalkushwaha
0
1k
Moby Project
kunalkushwaha
2
2.9k
Docker for Developers
kunalkushwaha
0
240
evolution of container runtime : containerD
kunalkushwaha
0
650
Containerd
kunalkushwaha
0
350
Other Decks in Technology
See All in Technology
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
3
160
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
2
190
アウトプットから始めるOSSコントリビューション 〜eslint-plugin-vueの場合〜 #vuefes
bengo4com
3
1.8k
オブザーバビリティが育むシステム理解と好奇心
maruloop
3
1.4k
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
160
[re:Inent2025事前勉強会(有志で開催)] re:Inventで見つけた人生をちょっと変えるコツ
sh_fk2
1
670
クラウドとリアルの融合により、製造業はどう変わるのか?〜クラスメソッドの製造業への取組と共に〜
hamadakoji
0
450
What's new in OpenShift 4.20
redhatlivestreaming
0
320
知覚とデザイン
rinchoku
1
610
デザインとエンジニアリングの架け橋を目指す OPTiMのデザインシステム「nucleus」の軌跡と広げ方
optim
0
120
20251024_TROCCO/COMETAアップデート紹介といくつかデモもやります!_#p_UG 東京:データ活用が進む組織の作り方
soysoysoyb
0
120
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
640
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
354
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Building Adaptive Systems
keathley
44
2.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
930
The Language of Interfaces
destraynor
162
25k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Embracing the Ebb and Flow
colly
88
4.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Mobile First: as difficult as doing things right
swwweet
225
10k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Transcript
Evolution of Container Runtime コンテナ・ランタイムの進化 Kunal Kushwaha @kunalkushwaha container
コンテナ・ランタイム コンテナをホスト上で管理するために、中心となる基本構成要素 • コンテナの実行と管理(supervision) • イメージの配布 • ネットワーク・インターフェースと管理 • ローカル・ストレージ
• ネイティブに組み込まれたAPI
Docker より前の時代 - Linux VServer 2002 - OpenVZ 2005 -
FreeBSD Jails 2005 - Solaris Containers. 2005 - LXC 2008 - エンドユーザはシステム管理者 - 分離した環境におけるプロセス実行に集中
Docker - 2013年3月に初リリース - コンテナ実行エンジンとして出発 - アプリケーションと依存性のパッケージに集中 - 階層化の手法を使いアプリケーションをスマートにパッケージ化することで、イメージ 間の共有が可能に
- コンテナの作成にあたり、AUFSで効率的に階層化したイメージを扱う - エンドユーザは開発者とQA(品質管理) - 集中しているのは - アプリケーションのパッケージ化 - 異なったマシン/環境間でアプリケーションの再作成や共有 - 開発・QA 環境における、時間と領域の節約
Dockerの台頭 - 主なプラットフォーム全てに移植 - AUFS のみならず、devicemapper、 btrfs、 overlayfs、 zfs 等
- イメージのセキュリティ - コンテント・アドレッサブル・ストレージ (CAS)を docker v1.10 で導入 - 更なる機能 - イメージ構築、セキュリティ - 後方互換性 - 技術的負債? - エコシステム - ネットワーク、ストレージ、ログ記録、オー ケストレータのソリューション
思想(方向性)の対立 - Docker はデーモンであるべき - Docker イメージの形式 - 標準の docker
ワークフロー (dockerhub) - Docker 1.12 (Swarmモード) Noooooo 好きじゃない人達がいる!!
None
Containerd プロジェクト • 2015年11月にスタートした、OCI ランタイムの runc を制御するため • 2016年の 1.11
までコンテナのランタイムとして Docker が使っていた • 2016年12月に新しい作業領域(スコープ)のもとで再スタート • 現在の Docker は 0.2.x 系のブランチを使用 • 新しい成果が反映されるのは 1.0 master ブランチから 新しい作業領域すべてを CNCF に寄贈
“containerd is designed to be embedded into a larger system,
rather than being used directly by developers or end-users. containerd will serve as a core container runtime for the CNCF ecosystem.” (containerdは、開発者やエンドユーザが直接使うので はなく、より大きなシステムに組み込めるよう設計されて います。containerdはCNCFエコシステムの中心となる コンテナ・ランタイムになります。)
エコシステムにおける Containerd の役割 Ecosystem
つまり、Containerd は Docker を抽出したもの? - Dockerの複雑さを修正したシンプルな設計 - 狭い領域に集中する小さな構成要素(コンポーネント) - すべてのサービスに対する
GRPC インターフェース - 長期運用における安定性 - OCI イメージとランタイムのサポート - マルチテナンシー(名前空間)のサポート - ポータブル(移植性) - 領域を限定 - ネットワークを扱わない - ボリュームを扱わない - 構築を扱わない - ログを扱わない • Containerd サービス ◦ 中身 ◦ イメージ ◦ ルートファイルシステム ◦ 実行 ◦ Shim(詰め木) ちがいます! Containerd は進化であり、作り直しではありません
Containerd アーキテクチャ
ストレージ・アーキテクチャ Docker Containerd dist ctr Config Rootfs(mounts)
Containerdの利点 - シンプルで進化した設計 - 簡単に貢献できる - 簡単にメンテナンスできる - OCI 仕様に対応した設計
- コミュニティによって承認されたコンテナ向けスタンダード(標準) - ロックイン無し - プラグイン・アーキテクチャ - 簡単に拡張 - 限定的な領域 - 合意を得た機能のみ - 望まれていない機能が膨張しない - マルチテナンシー (名前空間) - 同一ホスト上で複数のオーケストレータを干渉せずに実行
私は Containerd プロジェクトの対象? - Docker / Kubernetes のエンドユーザ - いいえ。ほとんど同様に使えます。変更は間接的なものであり、おそらく気づかないでしょう。
- Cloud プロバイダ - はい。containerd との直接統合により、コンテナ・サービスを構築できます。 - Docker を使いますが、高度な機能は使わない場合 - いいえ。問題はありません。 - もしかしたら、対象です。それは、明確に欲しいものが何かわかっており、 Containerd上で使おうとす る場合です。 - Docker コンテナと一緒にカスタム・コンテナを実行する場合 - はい、名前空間機能の使用とカスタムコンテナの実行が、安全かつ簡単になります。
Containerd の現状 - 1.0 向け機能実装が今月末(6月)に完了 - 結合テストが計画中 - Containerd 向けの
Kubernetes CRI - https://github.com/kubernetes-incubator/cri-containerd - AWS 統合 - https://github.com/samuelkarp/amazon-ecs-agent/tree/containerd - ベンチマーク/ストレス・テスト - https://github.com/estesp/bucketbench
プロジェクトへのs中 - Slack - github.com/containerd/containerd - #containerd (dockercommunity.slack.com) - #japanese
- 参加して日本語で議論しましょう - 毎週の開発レポート : - https://github.com/containerd/containerd/tree/master/reports - Twitter でフォロー - @containerd
ありがとう Thanks