创建存储类:Ceph 对象存储 (Alpha)
Ceph 对象存储可为平台提供基于 COSI(Container Object Storage Interface)的存储接入方式,并提供海量、灵活的 Ceph 对象存储服务,适用于大数据、备份恢复、机器学习等场景。
名词解释
名词 | 全称 | 描述 |
---|---|---|
CSI | Container Storage Interface | 容器存储接口,它可以将任意块、文件或对象存储系统暴露给 Kubernetes,为工作负载提供存储服务,第三方存储厂商可以使用 CSI 编写插件,从而在 Kubernetes 中暴露为新的存储系统,无需修改 Kubernetes 的核心代码。 |
COSI | Container Object Storage Interface | 容器对象存储接口,它的目标是成为跨多个对象存储供应商的公共抽象层,动态地为工作负载提供对象存储服务,同时第三方存储厂商也可以使用 COSI 编写插件,从而在 Kubernetes 中暴露为新的存储系统,无需修改 Kubernetes 的核心代码。 |
功能比较
存储类名称 | 卷插件 | 描述 |
---|---|---|
CephObject 分布式存储 | 基于容器存储接口 CSI 实现的 Kubernetes 卷插件:rook-ceph.ceph.rook.io/bucket 为容器提供对象存储服务。 | 都符合 Kubernetes 接入存储的 out-of-tree 理念,与 Kubernetes 松耦合,支持更加灵活地扩展。 |
Ceph 对象存储 | 基于容器对象存储接口 COSI 实现的 Kubernetes 卷插件:ceph.objectstorage.k8s.io 为容器提供对象存储服务。 |
提示: 如需使用 CSI 接入方式,请参考 创建存储类:CephObject 分布式存储 。
操作步骤
部署容器对象存储接口插件
为使用对象存储功能,您须首先部署容器对象存储接口插件。
-
在左侧导航栏中,单击 集群管理 > 集群。
-
单击待部署组件的 集群的名称。
-
在 插件 页签下,单击 容器对象存储接口 右侧的
> 部署。
-
等待部署状态为 部署成功 后完成部署。
配置分布式存储
-
在左侧导航栏中,单击 存储管理 > 分布式存储。
-
配置完成后,请单击存储池中对象存储名称右侧的
> 查看地址,记录 内部地址,该地址将在部署卷插件步骤中使用。
部署卷插件
-
在左侧导航栏中,单击 存储管理 > 存储类。
-
单击 Ceph 对象存储 卡片上的 部署 按钮,根据对接存储位置的不同,配置相关参数。
-
对接平台外部 Ceph 对象存储:
-
接入地址:联系相关人员获取 Ceph 对象存储服务接入地址,例如:
http://10.7.122.127:7480
。 -
Secret:在平台中使用命令生成 Secret,生成后可下拉选择。获取具有管理员权限的
accesskey
和secretkey
,在 部署 Ceph 对象存储卷插件 所在集群中,替换accesskey
和secretkey
字段后,执行以下命令:# 注意替换 accesskey 和 secretkey 字段。 kubectl -n cpaas-system create secret generic ceph-cosi-ops-secret --from-literal=ACCESSKEY={accesskey} --from-literal=SECRETKEY={secretkey} kubectl -n cpaas-system label secret ceph-cosi-ops-secret cosi-driver-ops=true
-
-
对接平台内部 Ceph 对象存储:
-
接入地址:填写在 配置分布式存储 步骤中获取的 内部地址,例如:
http://10.7.122.127:7480
。 -
Secret:在平台中使用命令生成 Secret,生成后可下拉选择。在 部署 Ceph 对象存储卷插件 所在集群中,进行如下步骤:
-
执行以下命令获取 csv 资源名称并记录:
kubectl get csv -n rook-ceph
-
将获取到的资源中 name 为
rook-ceph-tools
的replicas
值,由0
修改为1
,命令格式如下:kubectl -n rook-ceph edit csv <rook-ceph.xxx 为上一步中获取的资源名称>
-
执行以下命令获取 rook-ceph-tools 的 pod 名称并记录。
kubectl get po -n rook-ceph|grep rook-ceph-tools
-
执行以下命令进入 rook-ceph-tools 的 pod :
kubectl exec -it <rook-ceph-tools-8xxxx 为上一步中获取的 pod 名称> -n rook-ceph -- /bin/bash
-
创建 cosi-ops 用户,在 rook-ceph-tools 的 pod 中执行以下命令:
radosgw-admin user create --uid cosi-ops --display-name "cosi ops user" --caps "buckets=*;users=*;usage=read;metadata=read;zone=read"
-
获取用户的
accesskey
和secretkey
并记录,在 rook-ceph-tools 的 pod 中执行以下命令:radosgw-admin user info --uid=cosi-ops
-
执行
exit
命令,退出 pod。并在 cpaas-system 命名空间下创建名为ceph-cosi
的 secret,替换accesskey
和secretkey
字段后执行以下命令:kubectl -n cpaas-system create secret generic ceph-cosi-ops-secret --from-literal=ACCESSKEY=<accesskey> --from-literal=SECRETKEY=<secretkey> kubectl -n cpaas-system label secret ceph-cosi-ops-secret cosi-driver-ops=true
-
执行完成上述步骤后,可回到部署卷插件页面,单击下拉菜单,选择已创建的 secret。
-
-
创建存储类
-
在左侧导航栏中,单击 存储管理 > 存储类。
-
单击 创建存储类。
说明:下述内容以表单方式为例,您也可选择
> YAML 创建 完成操作。
-
选择 Ceph 对象存储,单击 下一步。
-
参考以下说明,配置部分参数。
参数 说明 回收策略 存储桶的回收策略。
- 删除:删除存储桶声明的同时,也会删除绑定的存储桶。
- 保留:即使删除存储桶声明,其绑定的存储桶仍会被保留。分配项目 请分配可使用此类型存储的项目。
如果暂时没有项目需要使用此类型存储,您也可先不分配项目,后续再更新项目。 -
单击 创建。
后续操作
-
查看存储桶绑定信息:在平台管理中可查看存储桶相关绑定信息。
-
创建存储桶声明:在容器平台中的存储功能中创建存储桶。
-
使用存储桶:在计算组件中挂载已创建的存储桶。