创建用于 Ceph RGW 的 BucketClass
通过 Container Object Storage Interface (COSI),可以向 Kubernetes 工作负载提供 Ceph Object Storage,为大数据分析、备份与恢复以及机器学习场景提供高扩展性和弹性存储。用户必须先创建 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 Driver(之前称为 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 发现该 Secret:
重要:标签
app=rook-ceph-rgw是平台 UI 列出该 Secret 的必需标签。
步骤 4 – 创建 BucketClass
选项 1 – UI 工作流
-
导航到 存储 → Object StorageClass,然后点击 创建 Object StorageClass。
-
选择 Ceph Object Storage 作为驱动程序。
-
配置以下字段:
- 删除策略 – 删除其 BucketClaim 时如何处理底层存储桶(默认值:
Delete)。 - Secret – 选择在步骤 3 中准备的 Secret(仅显示包含
app=rook-ceph-rgw的 Secret)。 - 分配项目 – (可选) 将使用范围限制为特定项目。
- 删除策略 – 删除其 BucketClaim 时如何处理底层存储桶(默认值:
-
点击创建。
选项 2 – YAML(适用于 GitOps)
使用正确的 Secret 引用创建 ceph-bucketclass.yaml:
应用清单:
验证和后续步骤
验证 BucketClass:
BucketClass 就绪后,您可以创建引用该 BucketClass 的 Bucket 或 BucketClaim 资源,从而为应用程序配置与 S3 兼容的对象存储。