トップ OSS紹介 CRI-O

CRI-O

サポート対象

NRIのOpenStandiaが提供するCRI-O最新情報

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でテストされています。

コンテナ/ストレージ

コンテナストレージライブラリはポッド内のファイルシステムレイヤ、コンテナ、イメージを管理します。
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と連携します。

出典:<a href="https://cri-o.io/" class="c-link--innerTxt">http://cri-o.io/</a>
出典:http://cri-o.io/

類似プロダクト

コンテナランタイムとしてcontainerd、rktなどがCRI-Oと類似する機能を提供しています。

動作環境

CRI-OはKubernetes指向で開発されているコンテナランタイムです。Kubernetesに最適化されているため、Kubernetesでのみ動作します。

CRI-Oのライセンス

CRI-Oのライセンスは、 「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、 誰でも自由かつ無償で利用・改変・再配布できるようになっています。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • containerd
    サポート対象

    containerd

    コンテナーディー。コンテナのライフサイクルを管理するシンプルで堅牢なコンテナランタイムです。

  • Kubernetes
    サポート対象

    Kubernetes

    クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。

  • Docker
    サポート対象

    Docker

    ドッカー。ソフトウェアコンテナを用いたアプリケーションのデプロイメントを自動化する仮想化オープンソースソフトウェアです。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。