创建存储类:Ceph 对象存储 (Alpha)
Ceph 对象存储可为平台提供基于 COSI(Container Object Storage Interface)的存储接入方式,并提供海量、灵活的 Ceph 对象存储服务,适用于大数据、备份恢复、机器学习等场景。
名词解释
| 名词 | 全称 | 描述 |
|---|---|---|
| COSI | Container Object Storage Interface | 容器对象存储接口,它的目标是成为跨多个对象存储供应商的公共抽象层,动态地为工作负载提供对象存储服务,同时第三方存储厂商也可以使用 COSI 编写插件,从而在 Kubernetes 中暴露为新的存储系统,无需修改 Kubernetes 的核心代码。 |
前提条件
使用下述任意一种方式,提前准备 Ceph 分布式存储服务。
-
使用平台内部的 Ceph 分布式存储服务,具体请参考 创建存储服务 。
-
使用平台外部的 Ceph 分布式存储服务。
操作步骤
部署容器对象存储接口插件
为使用对象存储功能,您须首先部署容器对象存储接口插件。
-
在左侧导航栏中,单击 集群管理 > 集群。
-
单击待部署组件的 集群的名称。
-
在 插件 页签下,单击 容器对象存储接口 右侧的
> 部署。 -
等待部署状态为 部署成功 后完成部署。
部署卷插件
-
在左侧导航栏中,单击 存储管理 > 对象存储类。
-
单击 创建对象存储类。
-
单击 Ceph 对象存储 卡片上的 部署,跳转至对应集群 插件 部署页面。
-
单击 Ceph 对象存储卷插件 右侧的
> 部署。 -
把 获取信息 中的
接入地址填写到 接入地址 中。 -
选择 密钥。
-
对接平台外部 Ceph 对象存储:单击 创建,将 对接平台外部 Ceph 对象存储 中的
accesskey和secretkey的值,分别填写到 ACCESSKEY 和 SECRETKEY 对应的 值 中,单击 创建 并选择使用此保密字典。 -
对接平台内部 Ceph 对象存储:按照 对接平台内部 Ceph 对象存储 中的方式创建名称为 ceph-cosi-ops-secret 的保密字典,并选择使用此保密字典。
-
-
单击 部署。
创建存储类
-
在左侧导航栏中,单击 存储管理 > 对象存储类。
说明:下述内容以表单方式为例,您也可选择
> YAML 创建 完成操作 -
单击 创建对象存储类。
-
选择 Ceph 对象存储,单击 下一步。
-
参考以下说明,配置部分参数。
参数 说明 回收策略 存储桶的回收策略。默认使用 删除 策略,即删除存储桶声明的同时,也会删除绑定的存储桶。 分配项目 请分配可使用此类型存储的项目。
如果暂时没有项目需要使用此类型存储,您也可先不分配项目,后续再更新项目。 -
单击 创建。
相关操作
获取信息
由于对接存储位置的不同,获取 接入地址、ACCESSKEY 和 SECRETKEY 的方式也不相同,请根据实际配置并选择下述一种方式进行获取。
-
对接平台外部 Ceph 对象存储:
-
接入地址:联系相关人员获取 Ceph 对象存储服务接入地址,例如:
http://10.7.122.127:7480。 -
ACCESSKEY 和 SECRETKEY:联系相关人员获取具有管理员权限的
accesskey和secretkey。
-
-
对接平台内部 Ceph 对象存储:
-
接入地址:填写在 查看对象存储池地址 章节中获取的 内部地址,例如:
http://10.7.122.127:7480。 -
密钥:在 部署 Ceph 对象存储卷插件 所在集群的 CLI 工具中依次执行如下六条命令,创建名称为 ceph-cosi-ops-secret 的保密字典并保存相关密钥信息。
kubectl patch csv -n rook-ceph $(kubectl get csv -n rook-ceph | grep -vi name | awk '{print $1}') --type=json -p='[{"op": "replace", "path": "/spec/install/spec/deployments/1/spec/replicas", "value": 1}]'kubectl exec -ti -n rook-ceph $(kubectl get pod -n rook-ceph | grep tools | awk '{print $1}') -- radosgw-admin user create --uid cosi-ops --display-name "cosi ops user" --caps "buckets=*;users=*;usage=read;metadata=read;zone=read"export ACCESS_KEY=$(kubectl exec -ti -n rook-ceph $(kubectl get pod -n rook-ceph | grep tools | awk '{print $1}') -- radosgw-admin user info --uid=cosi-ops | grep access_key | awk '{print $2}' | sed 's/"//g' | sed 's/,//g')export SECRET_KEY=$(kubectl exec -ti -n rook-ceph $(kubectl get pod -n rook-ceph | grep tools | awk '{print $1}') -- radosgw-admin user info --uid=cosi-ops | grep secret_key | awk '{print $2}' | sed 's/"//g' | sed 's/,//g')kubectl create secret generic -n cpaas-system ceph-cosi-ops-secret --from-literal=ACCESSKEY=$ACCESS_KEY --from-literal=SECRETKEY=$SECRET_KEYkubectl -n cpaas-system label secret ceph-cosi-ops-secret cosi-driver-ops=true
-