4.3. ストレージストラテジーの設定
本セクションでは、CodeReady Workspaces ワークスペースのストレージストラテジーを設定する方法を説明します。
4.3.1. codeready-workspaces ワークスペースのストレージストラテジー
- ストレージストラテジー
- CodeReady Workspaces ワークスペースが永続ボリューム要求(PVC)および永続ボリューム(PV)を使用する方法を定義する設定可能な方法。この方法では、プロジェクト、ワークスペースログ、ユーザーが定義する追加のボリュームなどのワークスペースデータのストレージを定義します。
表4.1 ストレージストラテジーの比較
ストレージストラテジー名 | common | per-workspace | unique |
---|---|---|---|
PV 数 | ユーザーごとに 1 つ | ワークスペースごとに 1 つ | ワークスペースごとに複数の PV |
Default | はい | いいえ | いいえ |
制限事項 |
PV が | PV 数はワークスペースの数によって異なります。 | 予測不可能な PV 数 |
- 永続ボリューム(PV)アクセスモード
-
PV の性質により、利用可能なアクセスモード(
ReadWriteMany
またはReadWriteOnce
)が決まります。Kubernetes ドキュメント「アクセスモード」を 参照してください。たとえば、Amazon EBS はReadWriteOnce
アクセスモードのみをサポートします。
4.3.1.1. 一般的な
ストレージストラテジー
これはデフォルトのストレージストラテジーです。各ユーザーについて、すべてのワークスペースはデフォルトのデータストレージに同じ PV を使用します。
ユーザーが最初の一時以外のワークスペースを起動すると、ワークスペースエンジンは共通の PV を作成します。
ユーザーが一時的な別のワークスペースを起動すると、ワークスペースエンジンは同じ共通 PV を使用します。ワークスペースは、同時に OpenShift クラスターの 1 つのノードにのみバインドします。ワークスペースエンジンは、ユーザー定義のボリュームを無視します。ワークスペースエンジンは、ユーザー定義のボリュームに関連するボリュームを、共通ボリュームの subPath に置き換えます。サブパスには <workspace-ID>
または <original-volume-name>
プレフィックスがあります。「永続ボリューム(PV)で subPath を使用する方法」 を参照してください。CodeReady Workspaces ボリューム名は、ユーザー定義の PV の名前と同じです。そのため、ワークスペースコンテナーがユーザー定義の PV と同じ名前を持つ CodeReady Workspaces ボリュームを使用する場合、それらは共通の PV 内の同じ共有フォルダーを使用します。
ユーザーがワークスペースを削除すると、ワークスペースエンジンは PV ディレクトリーの対応するサブディレクトリー(${ws-id}
)を削除します。
ユーザーが最後のワークスペースを削除すると、ワークスペースエンジンは共通 PV を削除します。
ReadWriteOnce
アクセスモードの一般的な
ストレージストラテジーの制限-
ReadWriteOnce
アクセスモードは、各ユーザーが 1 つの同時ワークスペースのみを実行するように制限します。「ユーザーが実行できるワークスペース数の設定」を参照してください。 - スケーラビリティー
-
一般的な
ストレージストラテジーは、ユーザーごとに同時に実行されているワークスペースの数が 1 を超える場合、PV に「ReadWriteOnce」アクセスモードを持つマルチノードクラスターには適していません。 - 永続ボリューム(PV)のプロビジョニング
- 1 つのプロジェクトが他のプロジェクトのリソースを使い切られる状況を防ぐために、すべてのプロジェクトに対応するのに十分な PV を作成します。
4.3.1.2. ワークス ペースごとの
ストレージストラテジー
各ワークスペースは 1 つの専用 PV を使用します。単一ワークスペース内で定義されたすべての CodeReady Workspaces ボリュームは同じ PV を使用します。
- 永続ボリューム(PV)のプロビジョニング
- ユーザーは複数のワークスペースを同時に実行できます。このアクションにより、より多くの PV が発生します。
4.3.1.3. 一意
のストレージストラテジー
ワークスペースで定義された各 CodeReady Workspaces ボリュームには独自の PV があります。
ユーザーがワークスペースを起動すると、ワークスペースエンジンはワークスペース PV を作成します。
ワークスペースエンジンは、同じプロジェクト内の他の PV と名前が競合しないように、各 PV に一意の名前を生成します。
異なるストレージストラテジーが同じ PV データ構造を使用するようにするには、ユーザー定義の PV を参照するマウント済み PV の subPath に <workspace-ID>
または <persistent-volume-name>
というプレフィックスが付けられます。「永続ボリューム(PV)で subPath を使用する方法」 を参照してください。
ユーザーがワークスペースを削除すると、ワークスペースエンジンはすべてのワークスペース PV を削除します。
- PV のプロビジョニング
- これは、最大ボリューム数を作成するストラテジーです。
4.3.1.4. 永続ボリューム(PV)で subPath を使用する方法
サブパスは PV のフォルダー階層を示しています。
/<pv0001> /<workspaceID1> /<workspaceID2> /<workspaceIDn> /che-logs /projects /<volume1> /<volume2> /<user-defined-volume-name-1> /<user-defined-volume-name-2> /<user-defined-volume-name-3|volume3> ...
ユーザーが devfile でコンポーネントのボリュームを定義すると、同じ名前のボリュームを定義するすべてのコンポーネントは、PV 内の <persistent-volume-name>、<
と同じディレクトリーでサポートされます。各コンポーネントでは、コンテナー内の異なるパスにこの場所をマウントすることができます。
workspace-ID>
、または <original-volume-name>
;