3.3. 使用服务规格部署 Ceph 对象网关
您可以使用服务规格和默认域、区域和区域组来部署 Ceph 对象网关。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对 bootstrap 启动主机的 root 级别访问权限。
- 主机添加到集群中。
- 部署所有管理器、监控和 OSD 守护进程。
流程
作为 root 用户,创建规格文件:
示例
[root@host01 ~]# touch radosgw.yml
通过在 Ceph 对象网关关闭/restart 中将
rgw_graceful_stop
设置为 'true',将 S3 请求配置为等待rgw_exit_timeout_secs
参数中定义的持续时间。语法
ceph config set client.rgw rgw_graceful_stop true ceph config set client.rgw rgw_exit_timeout_secs 120
注意在容器化部署中,还需要额外的
extra_container_agrs
配置 of--stop-timeout=120
(或 rgw_exit_timeout_secs 配置的值(如果不是默认值),以便它能够与ceph orch stop/restart
命令正常工作。[root@host1 ~]$ cat rgw_spec.yaml service_type: rgw service_id: foo placement: count_per_host: 1 hosts: - rgw_node spec: rgw_frontend_port: 8081 extra_container_args: - "--stop-timeout=120"
编辑
radosgw.yml
文件,使其包含 default realm、zone 和 zone group 的以下详情:语法
service_type: rgw service_id: REALM_NAME.ZONE_NAME placement: hosts: - HOST_NAME_1 - HOST_NAME_2 count_per_host: NUMBER_OF_DAEMONS spec: rgw_realm: REALM_NAME rgw_zone: ZONE_NAME rgw_zonegroup: ZONE_GROUP_NAME rgw_frontend_port: FRONT_END_PORT networks: - NETWORK_CIDR # Ceph Object Gateway service binds to a specific network
注意NUMBER_OF_DAEMONS 控制每个主机上部署的 Ceph 对象网关数量。要在不增加成本的情况下获得最高的性能,请将此值设置为 2。
示例
service_type: rgw service_id: default placement: hosts: - host01 - host02 - host03 count_per_host: 2 spec: rgw_realm: default rgw_zone: default rgw_zonegroup: default rgw_frontend_port: 1234 networks: - 192.169.142.0/24
可选: 对于自定义 realm、zone 和 zone group,请创建资源,然后创建
radosgw.yml
文件:创建自定义 realm、zone 和 zone group:
示例
[root@host01 ~]# radosgw-admin realm create --rgw-realm=test_realm --default [root@host01 ~]# radosgw-admin zonegroup create --rgw-zonegroup=test_zonegroup --default [root@host01 ~]# radosgw-admin zone create --rgw-zonegroup=test_zonegroup --rgw-zone=test_zone --default [root@host01 ~]# radosgw-admin period update --rgw-realm=test_realm --commit
使用以下详细信息,创建
radosgw.yml
文件:示例
service_type: rgw service_id: test_realm.test_zone placement: hosts: - host01 - host02 - host03 count_per_host: 2 spec: rgw_realm: test_realm rgw_zone: test_zone rgw_zonegroup: test_zonegroup rgw_frontend_port: 1234 networks: - 192.169.142.0/24
将
radosgw.yml
文件挂载到容器中的某个目录下:示例
[root@host01 ~]# cephadm shell --mount radosgw.yml:/var/lib/ceph/radosgw/radosgw.yml
注意每次退出 shell 时,您都必须在部署守护进程前将该文件挂载到容器中。
使用服务规格部署 Ceph 对象网关:
语法
ceph orch apply -i FILE_NAME.yml
示例
[ceph: root@host01 /]# ceph orch apply -i /var/lib/ceph/radosgw/radosgw.yml
验证
列出服务:
示例
[ceph: root@host01 /]# ceph orch ls
列出主机、守护进程和进程:
语法
ceph orch ps --daemon_type=DAEMON_NAME
示例
[ceph: root@host01 /]# ceph orch ps --daemon_type=rgw