1 コンテナ・ランタイムのイントロダクション
重要:
このドキュメントで説明されているソフトウェアは、Extended SupportまたはSustaining Supportにあります。 詳細は、「Oracleオープン・ソース・サポート・ポリシー」を参照してください。
このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお勧めします。
この章では、Oracle Cloud Native Environmentで使用可能なコンテナ・ランタイムについて説明します。 使用可能なコンテナ・ランタイムは、Open Container Initiative (OCI)ランタイム仕様に準拠しています。
この章では、runCとKata Containersについて概要を示します。
このドキュメントでは、イメージを使用してコンテナを詳細に作成する方法を説明したり、Kubernetesポッドまたはデプロイメントを作成および使用する方法を説明したりしません。
Kubernetesを使用したコンテナの作成と管理の詳細は、「Kubernetesモジュール」を参照してください。
runCの概要
runCはLinux Foundationのランタイム仕様(runtime-spec
)に基づくコンテナ・ランタイムです。runCはOpen Container Initiativeによって開発されています。
runCは、Oracle Cloud Native Environmentのコンポーネントです。runCは、クラウド・ネイティブ・コンピューティング・ファウンデーション(CNCF)準拠環境であり、マイクロサービスをデプロイしてコンテナを編成します。
runCは、安定している、アップストリームのrunCプロジェクトのリリースに基づいています。 このソフトウェアのOracleバージョンとアップストリーム・リリースとの違いは、特定の不具合に対してOracle固有の修正およびパッチが適用されているかどうかです。
アップストリームのrunCのドキュメントについては、次を参照してください。
https://github.com/opencontainers/runc/blob/main/man/runc.8.md
runCの詳細は、次を参照してください。
Kata Containersの概要
Kata Containersを使用すると、ワークロードのセキュリティと分離を強化できます。 Kata Containersは、アップストリームのKata Containers OpenStack Foundationプロジェクトに基づいています。 Kata Containersでは、コンテナ・エコシステムに簡単に組み込むことができる、軽量仮想マシンを作成するためのフレームワークが提供されます。 Kata Containersは、従来のコンテナの開発とデプロイメントの速度を維持しながら、さらなるレベルのセキュリティを提供します。
Kata ContainersはOracle Cloud Native Environmentのコンポーネントです。 Kata Containersは、マイクロサービスのデプロイとコンテナのオーケストレーションのためのCloud Native Computing Foundation (CNCF)準拠環境です。
Kataコンテナは、安定している、アップストリームのKataコンテナ・プロジェクトのリリースに基づいています。 このソフトウェアのOracleバージョンとアップストリーム・リリースとの違いは、特定の不具合に対してOracle固有の修正およびパッチが適用されているかどうかです。
アップストリームのKata Containersのドキュメントについては、次を参照してください。
https://github.com/kata-containers/documentation
Kata Containersの詳細は、次を参照してください。
ランタイム・クラスの設定
CRI-Oでは、ポッド構成ファイルに設定されているKubernetesアノテーションまたはランタイム・クラスを使用して、runc
かkata-runtime
のどちらを使用してポッドを実行するかを決定します。
図1-1 Kubernetesランタイム

Kubernetesランタイム・クラスを作成して、コンテナをデフォルトのランタイムrunc
として実行するか、kata-runtime
を使用して実行するかを指定できます。 このドキュメント内の例では、名前native
を使用してrunc
の使用を指定し、名前kata-containers
を使用してkata-runtime
の使用を指定しています。 任意の名前を使用できます。
ランタイム・クラスを作成するには、次の手順を実行します。
-
Kata Containers用ランタイム・クラスのファイルを、
kata-runtime.yaml
という名前を付け、次の内容を含めて作成します。kind: RuntimeClass apiVersion: node.k8s.io/v1 metadata: name: kata-containers handler: kata
Kubernetesデプロイメントにそのランタイム・クラスをロードします。
kubectl apply -f kata-runtime.yaml
ランタイム・クラス
kata-containers
をポッド構成ファイルで使用して、kata-containers
ランタイムを使用してコンテナをカタ・コンテナとして実行するように指定できます。 このランタイム・クラスを使用したポッドの作成の例は、「Kataコンテナの作成」を参照してください。 -
(オプション)
runc
のランタイムを指定するには、同様の方法でこれを実行できます。 これは必要に応じて行う構成ステップです。runc
はデフォルトのランタイムであるため、別途指定しないかぎり、ポッドは、自動的にrunc
を使用して実行されます。 このファイルの名前はrunc-runtime.yaml
です。kind: RuntimeClass apiVersion: node.k8s.io/v1 metadata: name: native handler: runc
Kubernetesデプロイメントにそのランタイム・クラスをロードします。
kubectl apply -f runc-runtime.yaml
ランタイム・クラス
native
をポッド構成ファイルで使用して、runc
ランタイムを使用して、コンテナをrunCコンテナとして実行するように指定できます。 -
kubectl get runtimeclass
を使用して、Kubernetesクラスタで使用可能なランタイム・クラスのリストを表示できます。 たとえば:kubectl get runtimeclass
出力は次のようになります:
NAME CREATED AT kata-containers <date> native <date>