存储卷管理
容器的特性决定了容器本身是非持久化的,容器被删除,其上的数据也一并被删除。百度云存储服务可以解决容器的数据共享和持久化存储问题,适用于大数据分析、媒体、游戏等多种场景。CNAP 存储卷管理能够为您的部署组中的容器挂载存储卷,实现容器的数据持久化。
存储类型
本地存储 | 说明 |
---|---|
本地存储 | 包含:主机临时路径(EmptyDir),主机路径(HostPath) |
文件存储CFS | 通过创建 PV/PVC 为容器挂载 CFS 文件存储 |
目前,CNAP 存储卷管理支持挂载本地存储卷类型及通过 PV/PVC 方式为用户挂载 CFS 文件存储。本地存储卷包括:主机临时路径(EmptyDir),主机路径(HostPath)。
PV(PersistenVolume)和PVC(PersistentVolumeClaim)是 Kubernetes 提供的用于抽象存储细节的 API 资源。CNAP 存储卷管理通过在集群内创建 PV 和 PVC 资源,将百度云 CFS 存储卷作为存储卷挂载到容器中,而无需关注底层实现细节,从而更加便捷地为容器集群提供持久化存储方案。
使用本地存储
创建应用/部署组时挂载存储卷
在创建应用(空应用除外)或者在应用下新建部署组时均可以为部署组挂载存储卷。
创建应用时挂载存储卷
- 创建应用
- 填写部署组相关信息
- 在存储卷页面点击添加存储卷
创建部署组时挂载存储卷
- 在应用下创建部署组
- 填写部署组相关信息
- 在存储卷界面点击添加存储卷
编辑部署组中的存储卷挂载
在”部署组详情“页面,可查看目前部署组中容器的存储卷挂载情况,点击”更新“即可编辑该部署组的存储卷挂载情况:
挂载存储卷
在”添加存储卷“界面,可以选择在容器中挂载的存储卷类型:主机路径(HostPath)或临时路径(EmptyDir)。
主机路径:
临时路径:
根据所选择的存储卷类型,填写相应信息。其中主机路径(HostPath)类型需要填写”主机存储路径“,表示宿主机的真实路径。
在”存储卷挂载“部分,可以将存储卷挂载在部署组的各个容器中。您可以根据需要选择和填写:
- 容器名称:选择要挂载存储卷的容器,为必填项。
- 挂载路径:存储卷在容器中的挂载路径,挂载成功后在容器中通过该路径访问存储卷,为必填项。
- 子路径:通过在宿主机路径下新建子目录,在多个挂载相同存储卷的容器间实现访问隔离,对容器无感,为可选项,默认为空。
- 是否只读:选择是否以只读权限挂载存储卷,选填项,默认不勾选。
主机路径(HostPath)
主机路径(HostPath)类型存储卷可实现将宿主机路径挂载到容器中以供访问,在部署组被删除后,存储卷中数据会被保留在宿主机,所以您需要在”主机存储路径“中填写宿主机路径。 可选的主机路径存储卷的”类型“有:
DirectoryOrCreate
: 如果指定路径不存在,会创建一个空目录,并设置权限为 0755,与 Kubelet 拥有相同的用户组和所有权。Directory
: 指定路径必须为一个已存在的目录。(若不存在,则容器无法启动)。FileOrCreate
: 如果指定路径不存在,会创建一个空文件,并设置权限为 0644,与 Kubelet 拥有相同的用户组和所有权。File
: 指定路径必须为一个已存在的文件。(若不存在,则容器无法启动)。Socket
: 指定路径必须为一个已存在的 UNIX socket 文件。(若不存在,则容器无法启动)。CharDevice
: 指定路径必须为一个已存在的字符设备。(若不存在,则容器无法启动)。BlockDevice
: 指定路径必须为一个已存在的块设备。(若不存在,则容器无法启动)。
其中只有选择 DirectoryOrCreate
或 Directory
时可以填写”子路径“。
临时路径(EmptyDir)
临时路径(EmptyDir)类型存储卷可实现将宿主机上新建临时目录挂载到容器中以供访问,需要注意的当部署中一个副本(Pod)被删除时,该临时目录也会被删除。 用户可以选择临时路径的”存储介质“:
内存
:数据将被存储在宿主机内存中,有更高的访问速度,但是会占用用户容器的可使用内存配额。临时目录
:数据将被存储在宿主机临时目录中。
使用文件存储 CFS
管理 CFS 存储卷
您可以在“资源管理”中的“存储”选项界面管理您的 CFS 持久化存储卷。
新建存储卷
确定您的目标工作空间后,点击“新建存储卷”即可开始新建持久化存储卷。
新建存储卷需填写基本信息,包括:存储卷名称,环境,并确定集群。若您所选择的环境未绑定 CCE 集群,则可以点击“绑定集群”将环境与集群关联。
新建存储卷要求您在百度云 CFS 文件存储服务中创建有 CFS 实例,并且在 CFS 实例下新建有与集群相同PVC的挂载点。为了方便您在创建挂载点时选择正确的 VPC,CNAP 在您选择集群后提示了该集群的 VPC。
当您在百度云 CFS 文件存储服务中新建 CFS 实例及挂载点后,即可在 CNAP 新建存储卷页面查看到可挂载到目标集群的 CFS 文件系统及挂载点信息。
持久化存储卷支持的访问模式为:ReadWriteMany,表示您可以将新建的存储卷挂载到集群中多个部署组,或一个部署组中的多个容器中。
持久化存储卷支持的数据保留策略为:保留(Retain),表示当您取消存储卷在容器中的挂载,或者在 CNAP 平台上删除该存储卷后,已写入 CFS 中的数据不会被删除,方式数据意外丢失。您仍然可以直接通过 CFS 挂载点访问已写入的数据。
点击确定后,CNAP 将为您在集群中创建一对一对一绑定的 PV/PVC。
查看存储卷挂载详情
新建存储卷后,确定工作空间,您可以在存储卷列表看到该工作空间下的所有存储卷。存储卷列表展示了存储卷的基本信息,包括名称、环境名称/ID、集群名称/ID、该存储卷对应的云上 CFS 挂载点、该存储卷的创建时间。
若您已将存储卷挂载到了一个或多个部署组中,点击“挂载详情”按钮,右侧弹窗中即可以展示该存储卷的挂载信息。包含在该工作空间下的环境ID/名称、应用ID/名称、部署组ID/名称。通过点击部署组ID/名称可以跳转到部署组详情页面。
删除存储卷
在存储卷列表中,通过点击存储卷右侧的“删除”按钮即可以删除该存储卷。
若该被删除的存储卷没有被任何存储卷挂载,在点击“删除”按钮后,即可完成对存储卷的删除;若该存储卷已被挂载,则存储卷不会立即被删除,而是进入“删除中”状态。您需要通过查看“挂载详情”,在展示的所有部署组中删除对该存储卷的挂载,删除挂载后,存储卷将被删除。同时集群中的 PV/PVC 也被删除。
挂载 CFS 存储卷
CFS 存储卷和挂载方式与本地存储卷相似。您可以在创建应用、创建部署组时为部署组挂载存储卷,也可以在“部署组详情”页面编辑部署组的挂载信息。
点击“添加存储卷”,即可在弹窗中选择您要挂载的 CFS 存储卷及挂载目标容器。
在“选择存储卷”的列表中,会展示所有该部署组可用的存储卷,您可以将状态为“可用”的存储卷挂载到容器中。
当将存储卷挂载到多个容器或部署组中时,若希望避免多个容器读写,造成存储卷中数据错误,您可以通过设置挂载“子路径”或开启“只读”选项,为不同容器或部署组分配不同目录及读取权限。