cri-oの概要
cri-oはKubernetes Incubator
Projectとして開発を開始し、Kubernetes実装のコンテナランタイムとしてDockerに代わる軽量コンテナランタイムとして開発されています。現在はコミュニティ主導のオープンソースプロジェクトとして様々なコントリビューターの協力の元、開発が進められています。
cri-oはKubernetesのコンポーネントの一つである、kubeletとコンテナランタイムが通信するための高レベルランタイムのAPI仕様であるCRI(Container Runtime
Interface)と、コンテナを直接操作する低レイヤラインタイムの標準仕様であるOCI(Open Container
Initiative)という2つに準拠しています。CRI実装で、OCIランタイムとつながるという意味でcri-oと名付けています。
2017年10月にv1.0が正式版としてリリースされました。
cri-oの主な特徴
Dockerに依存しないコンテナランタイム | OCIに準拠しているため、イメージの操作などをDocker利用せずに、cri-oで実行することが可能です。 |
---|---|
OCI準拠 | カーネルの機能等を利用しながら、コンテナの隔離環境の作成、操作を行う低レイヤランタイムに標準仕様に準拠しています。これによりDocker Hubなどのレジストに保存されたDockerイメージをcri-oにロードして、実行することが可能です。 |
CRI準拠 | Kubernetesのコンポーネントであるkubeletからunix socket経由のgRPCで通信を行うI/Fの仕様に準拠しています。これによりKubernetesのコンテナランタイムとして使用することが可能です。 |
安定性 | cri-oはKubernetesのメジャーリリースおよびマイナーリリースと連動して開発、テスト、リリースされること、およびCRI、OCIに準拠することで、Kubernetesで動作するランタイムとして安定性を高めています。 |
軽量化 | Dockerコマンドのような豊富なコマンド体系は持たせず、Kubernetesのコンテナランタイムとして最適化されているため、Dockerよりも軽量化されています。 |
cri-oのコンポーネント
cri-oはGitHubにある以下のコンポーネントで構成されています。
OCI互換ランタイム | cri-oはすべてのOCI互換ランタイムをサポートし、runCとClear Containersでテストされています。 |
---|---|
コンテナ/ストレージ | コンテナストレージライブラリはポッド内のファイルシステムレイヤ、コンテナ、イメージを管理します。 Overlayfs、devicemapper、AUFSおよびbtrfsが実装され、Overlayfsがデフォルトのドライバとして使用されます。 |
コンテナ/イメージ | コンテナイメージライブラリはレジストリからイメージをプルするために使用されています。現在、Dockerスキーマ2/バージョン1とスキーマ2/バージョン2をサポートしています。 |
コンテナネットワークインターフェース | Container Network Interface(CNI)はポッドのネットワークを設定するために使用されています。Flannel、Weave、OpenShift-SDNなどのさまざまなCNIプラグインがCRI-Oでテストされています。 |
モニタリング(common) | commonはcri-o内のユーティリティでコンテナの監視、コンテナプロセスからのログ処理、接続クライアントの提供、メモリ不足(OOM)状況の検出に使用されます。 |
セキュリティ | コンテナセキュリティ分離ポリシーは、SELinux、Capabilities、seccomp、およびOCI仕様で指定されているその他のセキュリティ分離ポリシーを含む一連のツールによって提供されます。 |
cri-oのアーキテクチャ
cri-oのアーキテクチャは以下の図の通りです。
CRIに準拠しているためkubeletと直接通信し、またOCIも準拠していることから低レイヤのコンテナランタイムとしてrunCと連携します。
cri-oの動作環境
cri-oはKubernetes指向で開発されているコンテナランタイムです。Kubernetesに最適化されているため、Kubernetesでのみ動作します。
cri-oと同様の機能を提供する製品
コンテナランタイムとしてcontainerd、rktなどがcri-oと類似する機能を提供しています。
cri-oのライセンス
cri-oのライセンスは、 「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、 誰でも自由かつ無償で利用・改変・再配布できるようになっています。
参考情報
cri-oのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。