为 Ceph RGW 创建 BucketClass
Ceph 对象存储可以通过 Container Object Storage Interface (COSI) 暴露给 Kubernetes 工作负载,提供高度可扩展和弹性的存储,适用于大数据分析、备份与恢复以及机器学习场景。用户在创建桶之前需要先创建一个 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 插件
安装以下集群插件:
- Alauda Container Platform COSI
- Alauda Container Platform 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。
-
配置以下字段:
- 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 的对象存储。