3.8. 配置存储
3.8.1. 配置存储类
要将 OpenShift Dev Spaces 配置为使用已配置的基础架构存储,请使用存储类安装 OpenShift Dev Spaces。当用户想绑定非默认置备程序提供的持久性卷时,这特别有用。为此,用户可将这个存储绑定用于 OpenShift Dev Spaces 数据存储并设置该存储的参数。这些参数可以确定以下内容:
- 特殊主机路径
- 一个存储容量
- 卷 mod
- 挂载选项
- 文件系统
- 访问模式
- 存储类型
- 以及许多其他
OpenShift Dev Spaces 有两个组件,它们需要持久性卷来存储数据:
- PostgreSQL 数据库。
-
OpenShift Dev Spaces 工作区。OpenShift Dev Spaces 工作区使用卷存储源代码,如
/projects
卷。
只有工作区不是临时的,OpenShift Dev Spaces 源代码才会存储在持久性卷中。
持久性卷声明事实:
- OpenShift Dev Spaces 不会在基础架构中创建持久性卷。
- OpenShift Dev Spaces 使用持久性卷声明(PVC)来挂载持久性卷。
OpenShift Dev Spaces 服务器创建持久性卷声明。
用户在 OpenShift Dev Spaces 配置中定义一个存储类名称,以使用 OpenShift Dev Spaces PVC 中的存储类功能。使用存储类时,用户通过额外的存储参数以灵活的方式配置基础架构存储。也可以使用类名称将静态置备的持久性卷绑定到 OpenShift Dev Spaces PVC。
流程
使用 CheCluster Custom Resource 定义来定义存储类:
定义存储类名称:配置
CheCluster
自定义资源,并安装 OpenShift Dev Spaces。请参阅 第 3.1.1 节 “在安装过程中使用 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
文件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"
绑定两个持久性卷:
$ kubectl apply -f che-workspace-pv.yaml -f che-postgres-pv.yaml
您必须为卷提供有效的文件权限。您可以使用存储类配置或手动完成此操作。要手动定义权限,请定义 storageClass#mountOptions
uid
和 gid
。PostgreSQL 卷需要 uid=26
和 gid=26
。