Kubernetes、Dockerに依存しないKubernetes用の軽量コンテナランタイム「cri-o」正式版1.0リリース
Kubernetesは、Dockerに依存しない軽量コンテナランタイム「cri-o」正式版1.0リリースした。cri-oはコンテナランタイムとしてはDockerに競合するが、コンテナイメージなどを作る機能などは備えていない。
Kubernetesに最適化された軽量なコンテナランタイム「cri-o」の正式版、「cri-o 1.0」がリリースされました。
cri-oは、Kubernetesの育成プロジェクト(Kubernetes Incubator Project)として開発されています。
Red Hatに所属するcri-oエンジニアリングチームのDaniel Walsh氏は、cri-oのオフィシャルブログに投稿された記事「CRI-O 1.0 is here」で、Dockerに依存しないコンテナランタイムであるcri-oの開発動機について次のように説明しています。
We felt at the time that the upstream Docker project was changing too quickly and was making Kubernetes unstable. We felt that perhaps by simplifying the container runtime we could do better.
そのとき(訳注:cri-oの開発を検討し始めたとき)、Dockerプロジェクトはあまりに早く変化しすぎていて、Kubernetesを不安定にしていた。そこで、私たちなら多分、シンプルにしたコンテナランタイムをもっとうまくつくれるだろうと考えたのだ。
cri-oはOCIとCRIの2つの標準に準拠
cri-oは2つの標準に準拠したコンテナランタイムです。
1つはコンテナランタイムおよびコンテナイメージの標準仕様を規定しているOCI(Open Container Initiative)への準拠です。これにより、すでにOCIに準拠しているDockerコンテナ用のイメージはそのままcri-oでも実行できます。
つまり、Docker Hubなどのレジストリに保存されたDockerイメージを、cri-oにロードしてそのまま実行可能だということです。
もう1つの標準はKubernetes 1.5から開発が進んでいる「CRI」(Kubernetes Container Runtime Interface)です。これはKubernetesとコンテナランタイムとのあいだで命令や情報をやりとりするためのAPI仕様です。
CRIに準拠したコンテナランタイムであれば、Kubernetesのコンテナランタイムとして使うことができます。
OCIとCRIの標準の位置づけを図にすると以下のようになります。
現在、ほぼすべてのコンテナランタイムはOCI対応であり、今後Kubernetesの普及を考えればCRI対応も進んでいくはずです。KubernetesはこのCRI標準に対応したコンテナランタイムであればcri-oでもDockerでも任意のコンテナランタイムが利用可能になると説明されています。
要するに、Kubernetes側から見ればコンテナランタイムを自由に選べることになるのです。
cri-oとDockerの競合と共存
cri-oはKubernetesに最適化されたコンテナランタイムという点で、Kubernetesを統合すると発表したDockerと競合する側面を持つことは間違いありません。
本番環境などにおいてより軽量で安定したコンテナランタイムとして、cri-oがDockerよりも選ばれることは十分にありえます。
一方で、cri-oはコンテナランタイムとして最適化されているため、Dockerコマンドのようなコンテナを操作するための柔軟なコマンド体系や、Dockerイメージを生成する機能などを備えていません。
そのためアプリケーションの開発フェーズやコンテナイメージの作成などにおいて使われるのは間違いなくDockerでしょう。
現時点でcri-oとDockerの位置づけはこのように解釈し住み分けができると考えることができます。しかし、コンテナ周りはまだまだダイナミックな動きが続いており、いつ意外なことが起きても不思議ではないでしょう。
参考
- cri-o
- CRI-O 1.0 is here – cri-o – Medium
- Introducing CRI-O 1.0
- CRI-O and Alternative Runtimes in Kubernetes — Project Atomic
関連記事
あわせて読みたい
「キャズム理論」のキャズム・インスティテュートが日本上陸。キャズムを超えて成功する「マーケット戦略」を作るため、トレーニングやコンサルティングを提供開始[PR]
≪前の記事
[速報]次バージョンのDocker for Win/Macでは、ローカルにKubernetes環境も自動構築。DockerCon Europe 2017