CRI-O情報
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が正式版としてリリースされました。
2019年4月にはCNCFプロジェクトとして承認され、2023年4月にはCNCF卒業プロジェクトに移行しています。
主な特徴
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でテストされています。 |
---|---|
コンテナ/ストレージ |
コンテナストレージライブラリはポッド内のファイルシステムレイヤ、コンテナ、イメージを管理します。 |
コンテナ/イメージ |
コンテナイメージライブラリはレジストリからイメージをプルするために使用されています。現在、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と連携します。
類似プロダクト
コンテナランタイムとしてcontainerd、rktなどがCRI-Oと類似する機能を提供しています。
動作環境
CRI-OはKubernetes指向で開発されているコンテナランタイムです。Kubernetesに最適化されているため、Kubernetesでのみ動作します。
CRI-Oのライセンス
CRI-Oのライセンスは、 「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、 誰でも自由かつ無償で利用・改変・再配布できるようになっています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
containerd
コンテナーディー。コンテナのライフサイクルを管理するシンプルで堅牢なコンテナランタイムです。
-
サポート対象
Kubernetes
クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。
-
サポート対象
Docker
ドッカー。ソフトウェアコンテナを用いたアプリケーションのデプロイメントを自動化する仮想化オープンソースソフトウェアです。