機械翻訳について

このドキュメントで説明されているソフトウェアは、サポートされなくなったか、拡張サポートされています。
Oracleでは、現在サポートされているリリースにアップグレードすることをお勧めします。

第1章 コンテナ・ランタイムの概要

この章では、Oracle Cloud Native Environmentで使用可能なコンテナ・ランタイムについて説明します。 使用可能なコンテナ・ランタイムは、Open Container Initiative (OCI)ランタイム仕様に準拠しています。

この章では、runCとKata Containersについて概要を示します。

このドキュメントでは、イメージを使用してコンテナを作成する方法や、Kubernetesのポッドまたはデプロイメントを作成および使用する方法については説明しません。

Kubernetesの使用によるコンテナの作成と管理の詳細は、コンテナ・オーケストレーションを参照してください。

1.1 runCの概要

runCはLinux Foundationのランタイム仕様(runtime-spec)に基づくコンテナ・ランタイムです。runCはOpen Container Initiativeによって開発されています。

runCは、Oracle Cloud Native Environmentのコンポーネントです。runCは、マイクロサービスのデプロイおよびコンテナのオーケストレーションのためのCloud Native Computing Foundation (CNCF)準拠環境です。

runCは、安定している、アップストリームのrunCプロジェクトのリリースに基づいています。 このソフトウェアのOracleバージョンとアップストリーム・リリースとの違いは、特定の不具合に対してOracle固有の修正およびパッチが適用されているかどうかです。

アップストリームのrunCのドキュメントについては、次を参照してください。

https://github.com/opencontainers/runc/blob/master/man/runc.8.md

runCの詳細は、次を参照してください。

https://github.com/opencontainers/runc

1.2 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の詳細は、次を参照してください。

https://katacontainers.io/

1.3 ランタイム・クラスの設定

CRI-Oでは、ポッド構成ファイルに設定されているKubernetesアノテーションまたはランタイム・クラスを使用して、runckata-runtimeのどちらを使用してポッドを実行するかを決定します。


Kubernetesランタイム・クラスを作成して、コンテナをデフォルト・ランタイムruncとして実行するかkata-runtimeを使用して実行するかを指定できます。 このドキュメント内の例では、名前nativeを使用してruncの使用を指定し、名前kata-containersを使用してkata-runtimeの使用を指定しています。 任意の名前を使用できます。

ランタイム・クラスを作成するには、次の手順を実行します。
  1. Kata Containers用ランタイム・クラスのファイルを、kata-runtime.yamlという名前を付け、次の内容を含めて作成します。

    kind: RuntimeClass
    apiVersion: node.k8s.io/v1beta1
    metadata:
        name: kata-containers
    handler: kata

    Kubernetesデプロイメントにそのランタイム・クラスをロードします。

    kubectl apply -f kata-runtime.yaml

    これで、ランタイム・クラスkata-containersをポッド構成ファイル内で使用して、コンテナをkata-containersランタイムの使用によってKataコンテナとして実行するように指定できます。 このランタイム・クラスを使用してポッドを作成する例については、3.3項のKataコンテナの作成を参照してください。

  2. (オプション) runcのランタイムを指定する必要がある場合は、同様の方法でそれを実行できます。 これは必要に応じて行う構成ステップです。 runcはデフォルトのランタイムであるため、別途指定しないかぎり、ポッドは、自動的にruncを使用して実行されます。 このファイルの名前はrunc-runtime.yamlです。

    kind: RuntimeClass
    apiVersion: node.k8s.io/v1beta1
    metadata:
        name: native
    handler: runc 

    Kubernetesデプロイメントにそのランタイム・クラスをロードします。

    kubectl apply -f runc-runtime.yaml

    ランタイム・クラスnativeをポッド構成ファイル内で使用して、コンテナをruncランタイムの使用によってrunCコンテナとして実行するように指定できます。

  3. kubectl get runtimeclassを使用すると、Kubernetesクラスタ用の使用可能なランタイム・クラスの一覧を表示できます。 たとえば:

    kubectl get runtimeclass
    NAME CREATED AT kata-containers 2019-09-11T06:48:12Z native 2019-09-11T07:08:56Z