3.2. 为外部模式创建 OpenShift Data Foundation 集群
在 Red Hat OpenStack 平台上部署的 OpenShift Container Platform 上安装 OpenShift Data Foundation operator 后,需要创建新的 OpenShift Data Foundation 集群。
先决条件
- 在部署 OpenShift Data Foundation 4.8 之前,请确保 OpenShift Container Platform 版本为 4.8 或更高版本。
- 必须安装 OpenShift Data Foundation 操作器。如需更多信息,请参阅使用 Operator Hub 安装 OpenShift Data Foundation Operator。
外部集群需要 Red Hat Ceph Storage 版本 4.2z1 或更高版本。如需更多信息,请参阅有关红帽 Ceph 存储发行版和相应 Ceph 软件包版本的知识库文章。
如果您已将红帽 Ceph 存储集群从低于 4.1.1 的版本更新为最新版本,且不是全新部署的集群,您必须在红帽 Ceph 存储集群中手动设置 CephFS 池的应用类型,以外部模式启用 CephFS PVC 创建。
如需了解更多详细信息,请参阅在外部模式中对 CephFS PVC 创建进行故障排除。
- Red Hat Ceph Storage 必须安装并配置 Ceph 控制面板。如需更多信息,请参阅 Ceph 控制面板安装和访问。
- 红帽建议外部 Red Hat Ceph Storage 集群启用 PG Autoscaler。如需更多信息,请参阅 Red Hat Ceph Storage 文档中的放置组自动扩展部分。
- 外部 Ceph 集群应当预配置有一个现有的 RBD 池,供使用。如果不存在,请在进行 OpenShift Data Foundation 部署前,联系您的 Red Hat Ceph Storage 管理员创建一个。红帽建议为每个 OpenShift Data Foundation 集群使用单独的池。
流程
点 Operators
Installed Operators 查看所有已安装的 Operator。 确保所选 项目 为
openshift-storage
。-
点 OpenShift Data Foundation
Create Instance of Storage Cluster 链接。 将 Mode 选择为 External。默认情况下,Internal 被选为部署模式。
图 3.1. 连接到创建存储集群表单上的外部集群部分
- 在 Connect to external cluster 部分中,单击 Download Script 链接,以下载用于提取 Ceph 集群详细信息的 python 脚本。
要提取 Red Hat Ceph Storage (RHCS) 集群详情,请联系 RHCS 管理员,以在带有
admin 密钥
的 Red Hat Ceph Storage 节点上运行下载的 python 脚本。在 RHCS 节点上运行以下命令,以查看可用参数的列表:
# python3 ceph-external-cluster-details-exporter.py --help
重要如果在 Red Hat Enterprise Linux 7.x (RHEL 7.x) 集群中部署了 Red Hat Ceph Storage 4.x 集群,则使用
python
而不是python3
。注意您也可以从 MON 容器(容器化部署)或 MON 节点(rpm 部署)运行 脚本。
要从 RHCS 集群检索外部集群详情,请运行以下命令
# python3 ceph-external-cluster-details-exporter.py \ --rbd-data-pool-name <rbd block pool name> [optional arguments]
例如:
# python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name ceph-rbd --monitoring-endpoint xxx.xxx.xxx.xxx --monitoring-endpoint-port xxxx --rgw-endpoint xxx.xxx.xxx.xxx:xxxx --run-as-user client.ocs
在上面的示例中,
-
--RBD-data-pool-name
是用于在 OpenShift Data Foundation 中提供块存储的强制参数。 -
--rgw-endpoint
是可选的。如果要通过 Ceph Rados 网关为 OpenShift Data Foundation 置备对象存储,请提供此参数。使用以下格式提供端点:<ip_address>:<port>
-
--monitoring-endpoint
是可选的。它是可从 OpenShift 容器平台集群访问的活动ceph-mgr
的 IP 地址。如果没有提供,则会自动填充该值。 -
--monitoring-endpoint-port
是可选的。它是与--monitoring-endpoint
指定的ceph-mgr
Prometheus exporter 关联的端口。如果没有提供,则会自动填充该值。 -- run-as-user
是一个可选参数,用于为 Ceph 用户提供由 脚本创建的名称。如果没有指定此参数,则会创建一个默认的用户名client.healthchecker
。新用户的权限被设置为:- caps: [mgr] allow command config
- caps: [mon] allow r, allow command quorum_status, allow command version
caps: [osd] allow rwx pool=
RGW_POOL_PREFIX.rgw.meta
, allow r pool=.rgw.root
, allow rw pool=RGW_POOL_PREFIX.rgw.control
, allow rx pool=RGW_POOL_PREFIX.rgw.log
, allow x pool=RGW_POOL_PREFIX.rgw.buckets.index
使用 python 脚本生成的 JSON 输出示例:
[{"name": "rook-ceph-mon-endpoints", "kind": "ConfigMap", "data": {"data": "xxx.xxx.xxx.xxx:xxxx", "maxMonId": "0", "mapping": "{}"}}, {"name": "rook-ceph-mon", "kind": "Secret", "data": {"admin-secret": "admin-secret", "fsid": "<fs-id>", "mon-secret": "mon-secret"}}, {"name": "rook-ceph-operator-creds", "kind": "Secret", "data": {"userID": "client.healthchecker", "userKey": "<user-key>"}}, {"name": "rook-csi-rbd-node", "kind": "Secret", "data": {"userID": "csi-rbd-node", "userKey": "<user-key>"}}, {"name": "ceph-rbd", "kind": "StorageClass", "data": {"pool": "ceph-rbd"}}, {"name": "monitoring-endpoint", "kind": "CephCluster", "data": {"MonitoringEndpoint": "xxx.xxx.xxx.xxx", "MonitoringPort": "xxxx"}}, {"name": "rook-csi-rbd-provisioner", "kind": "Secret", "data": {"userID": "csi-rbd-provisioner", "userKey": "<user-key>"}}, {"name": "rook-csi-cephfs-provisioner", "kind": "Secret", "data": {"adminID": "csi-cephfs-provisioner", "adminKey": "<admin-key>"}}, {"name": "rook-csi-cephfs-node", "kind": "Secret", "data": {"adminID": "csi-cephfs-node", "adminKey": "<admin-key>"}}, {"name": "cephfs", "kind": "StorageClass", "data": {"fsName": "cephfs", "pool": "cephfs_data"}}, {"name": "ceph-rgw", "kind": "StorageClass", "data": {"endpoint": "xxx.xxx.xxx.xxx:xxxx", "poolPrefix": "default"}}]
-
将 JSON 输出保存到带有
.json
扩展名的文件注意要使 OpenShift Data Foundation 无缝工作,请确保使用 JSON 文件上传的参数(RGW 端点、CephFS 详细信息和 RBD 池等)在创建存储集群后在 RHCS 外部集群上保持不变。
点 External cluster metadata
Browse 来选择并上传 JSON 文件。 JSON 文件的内容填充并在文本框中显示。
图 3.2. JSON 文件内容
点击 Create。
Create 按钮只有在上传
.json
文件后才会启用。
验证步骤
验证安装的存储集群的最终 Status 显示为
Phase:Ready
,并带有绿色勾号标记。-
点 Operators
Installed Operators Storage Cluster 链接来查看存储集群安装状态。 - 另外,当使用 Operator Details 选项卡时,您可以点击 Storage Cluster 选项卡查看状态。
-
点 Operators
- 要验证 OpenShift Data Foundation、Pod 和 StorageClass 是否已成功安装,请参阅验证外部模式 OpenShift Data Foundation 安装。