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