4.2. 在 DNS 中添加通配符
您可以将通配符(如 hostname)添加到 DNS 服务器的 DNS 记录中。
前提条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装了 Ceph 对象网关.
- 对管理节点的根级别访问权限。
流程
要将 Ceph 与 S3-style 子域一起使用,请向
ceph-
ResourceOverride 守护进程用来解析域名的 DNS 服务器的 DNS 记录中添加通配符:语法
bucket-name.domain-name.com
对于
dnsmasq
,使用主机名前的句点(.)添加以下地址设置:语法
address=/.HOSTNAME_OR_FQDN/HOST_IP_ADDRESS
示例
address=/.gateway-host01/192.168.122.75
对于
bind
,在 DNS 记录中添加通配符:示例
$TTL 604800 @ IN SOA gateway-host01. root.gateway-host01. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS gateway-host01. @ IN A 192.168.122.113 * IN CNAME @
重启 DNS 服务器并使用子域对服务器发出 ping 命令,以确保
ceph-radosgw
守护进程可以处理子域请求:语法
ping mybucket.HOSTNAME
示例
[root@host01 ~]# ping mybucket.gateway-host01
-
如果 DNS 服务器位于本地机器上,则可能需要通过为本地机器添加 nameserver 条目来修改
/etc/resolv.conf
。 在 Ceph 对象网关 zone group 中添加主机名:
获取 zone group:
语法
radosgw-admin zonegroup get --rgw-zonegroup=ZONEGROUP_NAME > zonegroup.json
示例
[ceph: root@host01 /]# radosgw-admin zonegroup get --rgw-zonegroup=us > zonegroup.json
使用 JSON 文件备份:
示例
[ceph: root@host01 /]# cp zonegroup.json zonegroup.backup.json
查看
zonegroup.json
文件:示例
[ceph: root@host01 /]# cat zonegroup.json { "id": "d523b624-2fa5-4412-92d5-a739245f0451", "name": "asia", "api_name": "asia", "is_master": "true", "endpoints": [], "hostnames": [], "hostnames_s3website": [], "master_zone": "d2a3b90f-f4f3-4d38-ac1f-6463a2b93c32", "zones": [ { "id": "d2a3b90f-f4f3-4d38-ac1f-6463a2b93c32", "name": "india", "endpoints": [], "log_meta": "false", "log_data": "false", "bucket_index_max_shards": 11, "read_only": "false", "tier_type": "", "sync_from_all": "true", "sync_from": [], "redirect_zone": "" } ], "placement_targets": [ { "name": "default-placement", "tags": [], "storage_classes": [ "STANDARD" ] } ], "default_placement": "default-placement", "realm_id": "d7e2ad25-1630-4aee-9627-84f24e13017f", "sync_policy": { "groups": [] } }
使用新主机名更新
zonegroup.json
文件:示例
"hostnames": ["host01", "host02","host03"],
在 Ceph 对象网关中设置 zone group back:
语法
radosgw-admin zonegroup set --rgw-zonegroup=ZONEGROUP_NAME --infile=zonegroup.json
示例
[ceph: root@host01 /]# radosgw-admin zonegroup set --rgw-zonegroup=us --infile=zonegroup.json
更新周期:
示例
[ceph: root@host01 /]# radosgw-admin period update --commit
- 重启 Ceph 对象网关,以便 DNS 设置生效。
其它资源
- 详细信息,请参见 Red Hat Ceph Storage 配置指南中的 Ceph 配置数据库章节。