注意
本文档适用于 Ceph 的开发版本。
RGW 模块
rgw 模块提供了一个简单的界面来部署 RGW 多站点。它有助于引导和配置 RGW realm、zonegroup 以及不同的相关实体。
启用
要启用 rgw 模块,请运行以下命令
ceph mgr module enable rgw
RGW Realm 操作
引导 RGW realm 会创建一个新的 RGW realm 实体、一个新的 zonegroup 和一个新的 zone。它配置了一个新的系统用户,可用于多站点同步操作。在底层,此模块指示编排器创建和部署相应的 RGW 守护程序。该模块支持通过命令行或作为 spec 文件传递参数
ceph rgw realm bootstrap [--realm-name] [--zonegroup-name] [--zone-name] [--port] [--placement] [--start-radosgw]
该命令支持通过 spec 文件 (-i 选项) 进行配置
ceph rgw realm bootstrap -i myrgw.yaml
以下是 RGW 多站点 spec 文件示例
rgw_realm: myrealm
rgw_zonegroup: myzonegroup
rgw_zone: myzone
placement:
hosts:
- ceph-node-1
- ceph-node-2
spec:
rgw_frontend_port: 5500
注意
RGW 多站点 spec 文件遵循与 cephadm 编排器 spec 文件相同的格式。因此,用户可以指定任何受支持的 RGW 参数,包括高级配置功能(例如 SSL 证书等)。
用户还可以在 spec 中(或通过命令行)指定自定义区域端点。在这种情况下,不会启动 cephadm 守护程序。以下是带有区域端点的 RGW spec 文件示例
rgw_realm: myrealm
rgw_zonegroup: myzonegroup
rgw_zone: myzone
zone_endpoints: http://<rgw_host1>:<rgw_port1>, http://<rgw_host2>:<rgw_port2>
Realm 凭证令牌
用户可以列出为已创建(或已存在)realm 可用的令牌。令牌是一个 base64 字符串,它封装了 realm 信息及其主区域端点身份验证数据。以下是 ceph rgw realm tokens 输出的示例
ceph rgw realm tokens | jq
[
{
"realm": "myrealm1",
"token": "ewogICAgInJlYWxtX25hbWUiOiAibXlyZWFs....NHlBTFhoIgp9"
},
{
"realm": "myrealm2",
"token": "ewogICAgInJlYWxtX25hbWUiOiAibXlyZWFs....RUU12ZDB0Igp9"
}
]
用户可以使用令牌拉取 realm,以在不同集群上创建辅助区域,该区域通过使用 ceph rgw zone create 命令并提供相应的令牌与主集群上的主区域同步。
以下是区域 spec 文件示例
rgw_zone: my-secondary-zone
rgw_realm_token: <token>
placement:
hosts:
- ceph-node-1
- ceph-node-2
spec:
rgw_frontend_port: 5500
ceph rgw zone create -i zone-spec.yaml
注意
RGW 使用的 spec 文件格式与编排器使用的相同。因此,用户可以提供任何编排支持的 RGW 参数,包括高级配置功能(例如 SSL 证书等)。
命令
ceph rgw realm bootstrap -i spec.yaml
创建新的 realm + zonegroup + zone,并通过编排器使用 YAML 文件中指定的信息部署 RGW 守护程序。
ceph rgw realm tokens
列出所有可用 realm 的令牌
ceph rgw zone create -i spec.yaml
通过创建新的辅助区域(使用 realm 令牌)加入现有 realm
ceph rgw admin [*]
升级根 CA 证书
确保 RGW 服务正在运行。
确保 RGW 服务已启动。
确保 RGW 服务已升级到最新版本。
从主集群的管理节点运行以下命令
ceph orch cert-store get cert cephadm_root_ca_cert在运行 RGW 服务的节点上,将证书存储在以下路径中
/etc/pki/ca-trust/source/anchors/<cert_name>.crt
通过运行以下命令验证证书
openssl x509 -in <cert_name>.crt -noout -text在所有辅助集群的管理节点和 RGW 节点上执行上述步骤。
在所有集群上验证证书后,在所有生成证书的集群上运行以下命令
update-ca-trust从主集群确保用户可以运行
curl命令curl https://<host_ip>:443