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 カスタムリソース定義を使用してストレージクラスを定義します。

  1. ストレージクラス名を定義します。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'
  2. che-postgres-pv.yaml ファイルで PostgreSQL データベースの永続ボリュームを定義します。

    che-postgres-pv.yaml file

    apiVersion: 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"

  3. che-postgres-pv.yaml ファイルで OpenShift Dev Spaces ワークスペースの永続ボリュームを定義します。

    che-workspace-pv.yaml file

    apiVersion: 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"

  4. 2 つの永続ボリュームをバインドします。

    $ kubectl apply -f che-workspace-pv.yaml -f che-postgres-pv.yaml
注記

ボリュームの有効なファイルパーミッションを指定する必要があります。これは、ストレージクラスの設定を使用して実行することも、手動で実行することもできます。パーミッションを手動で定義するには、storageClass#mountOptions uidgid を定義します。PostgreSQL ボリュームには uid=26gid=26 が必要です。