第2章 OpenShift サンドボックスコンテナーについて

OpenShift Container Platform の OpenShift サンドボックスコンテナーがサポートされることで、追加のオプションランタイムとして、Kata Container を実行するビルドインサポートが追加されます。新しいランタイムは、専用の仮想マシン (VM) でコンテナーをサポートし、ワークロードの分離を改善します。これは、次のタスクを実行する場合に特に役立ちます。

特権または信頼できないワークロードを実行する

OpenShift サンドボックスコンテナー (OSC) を使用すると、特権コンテナーを実行してクラスターノードを危険にさらすことなく、特定の特権を必要とするワークロードを安全に実行できます。特別な権限を必要とするワークロードには、次のものがあります。

  • たとえば、低レベルのネットワーク機能にアクセスするために、CRI-O などの標準コンテナーランタイムによって付与されるデフォルトの機能を超えて、カーネルからの特別な機能を必要とするワークロード。
  • 特定の物理デバイスにアクセスする場合など、ルート権限の昇格が必要なワークロード。OpenShift サンドボックスコンテナーを使用すると、特定のデバイスのみを VM に渡すことができるため、ワークロードがシステムの残りの部分にアクセスしたり、設定を誤ったりすることはありません。
  • set-uid ルートバイナリーをインストールまたは使用するためのワークロード。これらのバイナリーは特別な権限を付与するため、セキュリティーリスクが生じる可能性があります。OpenShift サンドボックスコンテナーを使用すると、追加の権限は仮想マシンに制限され、クラスターノードへの特別なアクセスは許可されません。

一部のワークロードでは、特にクラスターノードを設定するための特権が必要になる場合があります。このようなワークロードは、仮想マシンで実行すると機能しなくなるため、引き続き特権コンテナーを使用する必要があります。

各ワークロードのカーネルを確実に分離する
OpenShift サンドボックスコンテナーは、カスタムカーネルチューニング (sysctl、スケジューラーの変更、キャッシュチューニングなど) とカスタムカーネルモジュールの作成 (out of tree や特別な引数など) を必要とするワークロードをサポートします。
テナント全体で同じワークロードを共有する
OpenShift サンドボックスコンテナーを使用すると、同じ OpenShift クラスターを共有するさまざまな組織の複数のユーザー (テナント) をサポートできます。このシステムでは、コンテナーネットワーク機能 (CNF) やエンタープライズアプリケーションなど、複数のベンダーのサードパーティーワークロードを実行することもできます。たとえば、サードパーティーの CNF は、カスタム設定がパケットチューニングや他のアプリケーションによって設定された sysctl 変数に干渉することを望まない場合があります。完全に分離されたカーネル内で実行すると、ノイジーネイバー設定の問題を防ぐのに役立ちます。
ソフトウェアのテストに適した分離とサンドボックスがあることを確認する
OpenShift サンドボックスコンテナーを使用して、既知の脆弱性を持つコンテナー化されたワークロードを実行したり、レガシーアプリケーションの問題を処理したりできます。この分離により、管理者は Pod に対する管理制御を開発者に付与することもできます。これは、開発者が、管理者が通常許可する設定を超えて設定をテストまたは検証したい場合に役立ちます。たとえば、管理者は、安全かつ確実にカーネルパケットフィルタリング (eBPF) を開発者に委譲できます。カーネルパケットフィルタリングには CAP_ADMIN または CAP_BPF 権限が必要なため、標準の CRI-O 設定では許可されません。これにより、コンテナーホストワーカーノード上のすべてのプロセスへのアクセスが許可されるためです。同様に、管理者は SystemTap などの侵入型ツールへのアクセスを許可したり、開発中にカスタムカーネルモジュールのロードをサポートしたりできます。
仮想マシン境界を使用して、デフォルトのリソースに含まれるようにする
デフォルトでは、CPU、メモリー、ストレージ、ネットワークなどのリソースは、OpenShift サンドボックスコンテナーでより堅牢で安全な方法で管理されます。OpenShift サンドボックスコンテナーは仮想マシンにデプロイされるため、分離とセキュリティーのレイヤーを追加することで、リソースへのアクセスをよりきめ細かく制御できます。たとえば、誤ったコンテナーは、仮想マシンで使用できる以上のメモリーを割り当てることができません。逆に、ネットワークカードまたはディスクへの専用アクセスが必要なコンテナーは、他のデバイスにアクセスすることなく、そのデバイスを完全に制御できます。

2.1. OpenShift サンドボックスコンテナーがサポートするプラットフォーム

ベアメタルサーバーまたはアマゾンウェブサービス (AWS) ベアメタルインスタンスに OpenShift サンドボックスコンテナーをインストールできます。他のクラウドプロバイダーが提供するベアメタルインスタンスはサポートされません。

Red Hat Enterprise Linux CoreOS (RHCOS) は、OpenShift サンドボックスコンテナーで唯一サポートされているオペレーティングシステムです。OpenShift サンドボックスコンテナー 1.3 は、Red Hat Enterprise Linux CoreOS (RHCOS) 8.6 で実行されます。

OpenShift サンドボックスコンテナー 1.3 は、OpenShift Container Platform 4.11 と互換性があります。