第7章 ワークスペースの永続ストレージを要求する
OpenShift Dev Spaces ワークスペースとワークスペースデータは一時的なものであり、ワークスペースが停止すると失われます。
ワークスペースが停止している間、ワークスペースの状態を永続ストレージに保持するには、組織の OpenShift Dev Spaces インスタンスの OpenShift クラスター内の DevWorkspace コンテナーに対して Kubernetes 永続ボリューム (PV) をリクエストします。
devfile または Kubernetes PersistentVolumeClaim (PVC) を使用して PV をリクエストできます。
PV の例は、ワークスペースの /projects/ ディレクトリーです。これは、non-ephemeral ワークスペース用にデフォルトでマウントされます。
永続ボリュームにはコストがかかります。永続ボリュームを接続すると、ワークスペースの起動が遅くなります。
別のワークスペースを ReadWriteOnce PV で同時に実行すると、失敗する可能性があります。
7.1. devfile での永続ストレージのリクエスト リンクのコピーリンクがクリップボードにコピーされました!
ワークスペースに独自の永続ストレージが必要な場合は、devfile で PersistentVolume (PV) をリクエストすると、OpenShift Dev Spaces が必要な PersistentVolumeClaims を自動的に管理します。
前提条件
- ワークスペースを開始していない。
手順
devfile に
volumeコンポーネントを追加します。... components: ... - name: <chosen_volume_name> volume: size: <requested_volume_size>G ...devfile に該当する
containerのvolumeMountを追加する。... components: - name: ... container: ... volumeMounts: - name: <chosen_volume_name_from_previous_step> path: <path_where_to_mount_the_PV> ...
例7.1 ワークスペースの PV をコンテナーにプロビジョニングする devfile
ワークスペースが次の devfile で開始されると、cache PV は ./cache コンテナーパスの golang コンテナーにプロビジョニングされます。
schemaVersion: 2.1.0
metadata:
name: mydevfile
components:
- name: golang
container:
image: golang
memoryLimit: 512Mi
mountSources: true
command: ['sleep', 'infinity']
volumeMounts:
- name: cache
path: /.cache
- name: cache
volume:
size: 2Gi