为 Ceph RGW 创建 BucketClass
通过 Container Object Storage Interface (COSI),可以向 Kubernetes 工作负载提供 Ceph 对象存储,以支持大数据分析、备份与恢复以及机器学习等场景。用户必须先创建 BucketClass,才能预配存储桶。
BucketClass 是一种模板资源,用于指定存储驱动程序、身份验证 Secret,以及应用于通过该模板创建的每个存储桶的删除策略。
目录
前提条件步骤 1 – 准备 Ceph 集群步骤 2 – 安装 COSI 插件步骤 3 – 准备凭证 Secret方法 A – 自动生成(Rook 管理的 Ceph)方法 B – 手动(外部 Ceph)步骤 4 – 创建 BucketClass选项 1 – UI 工作流选项 2 – YAML(适用于 GitOps)验证与后续步骤前提条件
步骤 1 – 准备 Ceph 集群
选择以下一项:
步骤 2 – 安装 COSI 插件
安装以下集群插件:
- COSI
- COSI Driver
有关具体命令,请参阅 安装。
步骤 3 – 准备凭证 Secret
COSI 会从 Kubernetes Secret 中获取 RGW 凭证。请根据 Ceph 部署方式选择一种方法。
方法 A – 自动生成(Rook 管理的 Ceph)
-
在 rook‑ceph 命名空间中创建一个 CephObjectStoreUser:
-
应用清单:
-
获取自动生成的 Secret 名称(后续步骤会用到):
方法 B – 手动(外部 Ceph)
-
获取 AccessKey、SecretKey 和 RGW Endpoint。
-
在目标项目/命名空间中创建一个 Secret,并为其添加标签,以便 UI 能够发现它:
重要:平台 UI 必须使用标签
app=rook-ceph-rgw才能列出该 Secret。
步骤 4 – 创建 BucketClass
选项 1 – UI 工作流
-
前往 Storage → Object StorageClass,然后单击 Create Object StorageClass。
-
选择 Ceph Object Storage 作为驱动程序。
-
配置以下字段:
- Deletion Policy – 删除 BucketClaim 时如何处理底层存储桶(默认值:
Delete)。 - Secret – 选择在步骤 3 中准备的 Secret(仅显示具有
app=rook-ceph-rgw的 Secret)。 - Allocate Projects – *(可选)*限制可使用该资源的项目。
- Deletion Policy – 删除 BucketClaim 时如何处理底层存储桶(默认值:
-
单击 Create。
选项 2 – YAML(适用于 GitOps)
创建 ceph-bucketclass.yaml,并配置正确的 Secret 引用:
应用清单:
验证与后续步骤
验证 BucketClass:
BucketClass 就绪后,即可创建引用该资源的 Bucket 或 BucketClaim 资源,为应用预配兼容 S3 的对象存储。