3.8. 配置存储
OpenShift Dev Spaces 不支持网络文件系统(NFS)协议。
3.8.1. 配置存储类
要将 OpenShift Dev Spaces 配置为使用配置的基础架构存储,请使用存储类安装 OpenShift Dev Spaces。当您要绑定非默认置备程序提供的持久性卷时,这特别有用。
OpenShift Dev Spaces 有一个组件,需要持久性卷来存储数据:
-
OpenShift Dev Spaces 工作区。OpenShift Dev Spaces 工作区使用卷存储源代码,如
/projects
卷。
只有在工作区不是临时时,OpenShift Dev Spaces 工作区源代码才会存储在持久性卷中。
持久性卷声明事实:
- OpenShift Dev Spaces 不会在基础架构中创建持久性卷。
- OpenShift Dev Spaces 使用持久性卷声明(PVC)来挂载持久性卷。
第 1.3.1.2 节 “dev Workspace operator” 创建持久性卷声明。
在 OpenShift Dev Spaces 配置中定义存储类名称,以使用 OpenShift Dev Spaces PVC 中的存储类功能。
流程
使用 CheCluster 自定义资源定义来定义存储类:
定义存储类名称:配置
CheCluster
自定义资源,并安装 OpenShift Dev Spaces。请参阅 第 3.1.1 节 “在安装过程中使用 dsc 配置CheCluster
自定义资源”。spec: devEnvironments: storage: perUserStrategyPvcConfig: claimSize: <claim_size> 1 storageClass: <storage_class_name> 2 perWorkspaceStrategyPvcConfig: claimSize: <claim_size> 3 storageClass: <storage_class_name> 4 pvcStrategy: <pvc_strategy> 5
3.8.2. 配置存储策略
OpenShift Dev Spaces 可以配置为通过选择存储策略为工作区提供持久性或非持久性存储。默认情况下,所选存储策略将应用到所有新创建的工作区。用户可以通过 URL 参数在 devfile 中为其工作区选择非默认存储策略。
可用的存储策略:
-
每个用户
:对用户创建的所有工作区使用一个 PVC。 -
per-workspace
:每个工作区都给出自己的 PVC。 -
临时
: 非持久性存储;当工作空间停止时,任何本地更改都将丢失。
OpenShift Dev Spaces 中使用的默认存储策略是 每个用户
。
流程
-
将 Che Cluster Custom Resource 中的
pvcStrategy
字段设置为per-user
、per-workspace
或ephemeral
。
-
您可在安装时设置此字段。请参阅 第 3.1.1 节 “在安装过程中使用 dsc 配置
CheCluster
自定义资源”。 - 您可以在命令行中更新此字段。请参阅 第 3.1.2 节 “使用 CLI 配置 CheCluster 自定义资源”。
spec:
devEnvironments:
storage:
pvc:
pvcStrategy: 'per-user' 1
- 1
- 可用的存储策略是
每个用户、
和per-
workspaceephemeral
。
3.8.3. 配置存储大小
您可以使用 per-user
或 per-workspace
存储策略配置持久性卷声明(PVC)大小。您必须以 Kubernetes 资源数量的形式指定 CheCluster
自定义资源中的 PVC 大小。有关可用存储策略的详情,请查看 此页面。
默认持久性卷声明大小:
per-user: 10Gi
per-workspace: 5Gi
流程
-
在 Che Cluster 自定义资源中为所需的存储策略设置适当的
claimSize
字段。
-
您可在安装时设置此字段。请参阅 第 3.1.1 节 “在安装过程中使用 dsc 配置
CheCluster
自定义资源”。 - 您可以在命令行中更新此字段。请参阅 第 3.1.2 节 “使用 CLI 配置 CheCluster 自定义资源”。
spec: devEnvironments: storage: pvc: pvcStrategy: '<strategy_name>' 1 perUserStrategyPvcConfig: 2 claimSize: <resource_quantity> 3 perWorkspaceStrategyPvcConfig: 4 claimSize: <resource_quantity> 5