3.8. ストレージの設定
3.8.1. ストレージクラスを使用した Dev Spaces のインストール
設定されたインフラストラクチャーストレージを使用するように OpenShift Dev Spaces を設定するには、ストレージクラスを使用して OpenShift Dev Spaces をインストールします。これは、ユーザーがデフォルト以外のプロビジョナーによって提供される永続ボリュームをバインドする必要がある場合にとくに役立ちます。そのために、ユーザーはこのストレージを OpenShift Dev Spaces データ保存用にバインドし、そのストレージのパラメーターを設定します。これらのパラメーターは、以下を決定します。
- 特殊なホストパス
- ストレージ容量
- ボリューム mod
- マウントオプション
- ファイルシステム
- アクセスモード
- ストレージタイプ
- その他多数
OpenShift Dev Spaces には、データを格納するために永続ボリュームを必要とする 2 つのコンポーネントがあります。
- PostgreSQL データベース。
-
OpenShift Dev Spaces ワークスペース。OpenShift Dev Spaces ワークスペースは、
/projects
ボリュームなどのボリュームを使用してソースコードを保存します。
OpenShift Dev Spaces ワークスペースソースコードは、ワークスペースが一時的ではない場合にのみ永続ボリュームに保存されます。
永続ボリューム要求 (PVC) のファクト:
- OpenShift Dev Spaces は、インフラストラクチャーに永続ボリュームを作成しません。
- OpenShift Dev Spaces は、永続ボリュームクレーム (PVC) を使用して永続ボリュームをマウントします。
OpenShift Dev Spaces サーバーは永続ボリューム要求を作成します。
ユーザーは、OpenShift Dev Spaces PVC でストレージクラス機能を使用するために、OpenShift Dev Spaces 設定でストレージクラス名を定義します。ストレージクラスを使用すると、ユーザーは追加のストレージパラメーターを使用してインフラストラクチャーストレージを柔軟に設定します。クラス名を使用して、静的にプロビジョニングされた永続ボリュームを OpenShift Dev Spaces PVC にバインドすることもできます。
手順
CheCluster カスタムリソース定義を使用してストレージクラスを定義します。
ストレージクラス名を定義します。
CheCluster
カスタムリソースを設定し、OpenShift Dev Spaces をインストールします。「dsc を使用したインストール時にCheCluster
カスタムリソースの設定」を参照してください。spec: components: database: pvc: # keep blank unless you need to use a non default storage class for PostgreSQL PVC storageClass: 'postgres-storage' devEnvironments: storage: pvc: # keep blank unless you need to use a non default storage class for workspace PVC(s) storageClass: 'workspace-storage'
che-postgres-pv.yaml
ファイルで PostgreSQL データベースの永続ボリュームを定義します。che-postgres-pv.yaml
fileapiVersion: v1 kind: PersistentVolume metadata: name: postgres-pv-volume labels: type: local spec: storageClassName: postgres-storage capacity: storage: 1Gi accessModes: - ReadWriteOnce hostPath: path: "/data/che/postgres"
che-postgres-pv.yaml
ファイルで OpenShift Dev Spaces ワークスペースの永続ボリュームを定義します。che-workspace-pv.yaml
fileapiVersion: v1 kind: PersistentVolume metadata: name: workspace-pv-volume labels: type: local spec: storageClassName: workspace-storage capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/data/che/workspace"
2 つの永続ボリュームをバインドします。
$ kubectl apply -f che-workspace-pv.yaml -f che-postgres-pv.yaml
ボリュームの有効なファイルパーミッションを指定する必要があります。これは、ストレージクラスの設定を使用して実行することも、手動で実行することもできます。パーミッションを手動で定義するには、storageClass#mountOptions
uid
と gid
を定義します。PostgreSQL ボリュームには uid=26
と gid=26
が必要です。