第 6 章 更新 OpenShift Data Foundation 外部机密
在升级到最新版本的 OpenShift Data Foundation 后,更新 OpenShift Data Foundation 外部机密。
批处理更新不需要更新外部 secret。例如,当从 OpenShift Data Foundation 4.15.x 更新至 4.15.y 时。
先决条件
- 将 OpenShift Container Platform 集群更新至 4.15.z 的最新稳定版本,请参阅更新集群。
确保 OpenShift Data Foundation 集群正常运行,数据具有弹性。进入到 Storage
Data Foundation Storage Systems 选项卡,然后点存储系统名称。 - 在 Overview - Block and File 选项卡中,检查 Status 卡并确认 存储集群 有一个绿色勾号指示其健康。
- 单击 Object 选项卡,并确认 Object Service 和数据弹性具有绿色勾号,指示其运行正常。RADOS 对象网关仅列出在以外部模式部署 OpenShift Data Foundation 时包含 RADOS 对象网关端点详细信息的情况。
- Red Hat Ceph Storage 必须安装并配置 Ceph 控制面板。
流程
下载 OpenShift Data Foundation 的
ceph-external-cluster-details-exporter.py
python 脚本。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get csv $(oc get csv -n openshift-storage | grep ocs-operator | awk '{print $1}') -n openshift-storage -o jsonpath='{.metadata.annotations.external\.features\.ocs\.openshift\.io/export-script}' | base64 --decode > ceph-external-cluster-details-exporter.py
# oc get csv $(oc get csv -n openshift-storage | grep ocs-operator | awk '{print $1}') -n openshift-storage -o jsonpath='{.metadata.annotations.external\.features\.ocs\.openshift\.io/export-script}' | base64 --decode > ceph-external-cluster-details-exporter.py
通过在外部 Red Hat Ceph Storage 集群中的任何客户端节点上运行
ceph-external-cluster-details-exporter.py
,更新外部 Red Hat Ceph Storage 存储集群的权限上限。您可能需要要求您的 Red Hat Ceph Storage 管理员来执行此操作。Copy to Clipboard Copied! Toggle word wrap Toggle overflow python3 ceph-external-cluster-details-exporter.py --upgrade
# python3 ceph-external-cluster-details-exporter.py --upgrade
用户的更新权限被设置为:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow client.csi-cephfs-node key: AQCYz0piYgu/IRAAipji4C8+Lfymu9vOrox3zQ== caps: [mds] allow rw caps: [mgr] allow rw caps: [mon] allow r, allow command 'osd blocklist' caps: [osd] allow rw tag cephfs = client.csi-cephfs-provisioner key: AQCYz0piDUMSIxAARuGUyhLXFO9u4zQeRG65pQ== caps: [mgr] allow rw caps: [mon] allow r, allow command 'osd blocklist' caps: [osd] allow rw tag cephfs metadata=* client.csi-rbd-node key: AQCYz0pi88IKHhAAvzRN4fD90nkb082ldrTaHA== caps: [mon] profile rbd, allow command 'osd blocklist' caps: [osd] profile rbd client.csi-rbd-provisioner key: AQCYz0pi6W8IIBAAgRJfrAW7kZfucNdqJqS9dQ== caps: [mgr] allow rw caps: [mon] profile rbd, allow command 'osd blocklist' caps: [osd] profile rbd
client.csi-cephfs-node key: AQCYz0piYgu/IRAAipji4C8+Lfymu9vOrox3zQ== caps: [mds] allow rw caps: [mgr] allow rw caps: [mon] allow r, allow command 'osd blocklist' caps: [osd] allow rw tag cephfs = client.csi-cephfs-provisioner key: AQCYz0piDUMSIxAARuGUyhLXFO9u4zQeRG65pQ== caps: [mgr] allow rw caps: [mon] allow r, allow command 'osd blocklist' caps: [osd] allow rw tag cephfs metadata=* client.csi-rbd-node key: AQCYz0pi88IKHhAAvzRN4fD90nkb082ldrTaHA== caps: [mon] profile rbd, allow command 'osd blocklist' caps: [osd] profile rbd client.csi-rbd-provisioner key: AQCYz0pi6W8IIBAAgRJfrAW7kZfucNdqJqS9dQ== caps: [mgr] allow rw caps: [mon] profile rbd, allow command 'osd blocklist' caps: [osd] profile rbd
运行之前下载的 python 脚本,再保存从外部 Red Hat Ceph Storage 存储集群生成的 JSON 输出。
运行之前下载的 python 脚本:
注意- 确保使用您在原始部署中使用的所有标志,包括您已使用的任何可选参数。
-
确保除
monitoring-endpoint
和monitoring-endpoint-port
外的所有参数(包括可选参数)与您在外部模式中最初部署 OpenShift Data Foundation 期间所用的相同。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name <rbd block pool name> --monitoring-endpoint <ceph mgr prometheus exporter endpoint> --monitoring-endpoint-port <ceph mgr prometheus exporter port> --rgw-endpoint <rgw endpoint> --run-as-user <ocs_client_name> [optional arguments]
# python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name <rbd block pool name> --monitoring-endpoint <ceph mgr prometheus exporter endpoint> --monitoring-endpoint-port <ceph mgr prometheus exporter port> --rgw-endpoint <rgw endpoint> --run-as-user <ocs_client_name> [optional arguments]
--rbd-data-pool-name
- 用于在 OpenShift Data Foundation 中提供块存储的必填参数。
--rgw-endpoint
-
是可选的。如果要通过 Ceph Rados 网关为 OpenShift Data Foundation 置备对象存储,请提供此参数。提供以下格式的端点:
<ip_address>:<port>
。 --monitoring-endpoint
- 是可选的。它接受可从 OpenShift Container Platform 集群访问的活跃和待机 mgrs 的以逗号分隔的 IP 地址列表。如果没有提供,则会自动填充该值。
--monitoring-endpoint-port
-
是可选的。它是与
--monitoring-endpoint
指定的 ceph-mgr Prometheus exporter 关联的端口。如果没有提供,则会自动填充该值。 --run-as-user
在 OpenShift Data Foundation 集群部署期间使用的客户端名称。如果未设置其他客户端名称,请使用默认的客户端名称
client.healthchecker
。附加标记:
rgw-pool-prefix
(可选) RGW 池的前缀。如果未指定,默认的前缀为
default
。rgw-tls-cert-path
(可选)RADOS 网关端点 TLS 证书的文件路径。
rgw-skip-tls
(可选)此参数在提供自签名证书时会忽略 TLS 证书验证(不推荐)。
ceph-conf
(可选)Ceph 配置文件的名称。
cluster-name
(可选)Ceph 集群名称。
output
(可选)需要存储输出的文件。
cephfs-metadata-pool-name
(可选)CephFS 元数据池的名称。
cephfs-data-pool-name
(可选)CephFS 数据池的名称。
cephfs-filesystem-name
(可选)CephFS 文件的名称。
rbd-metadata-ec-pool-name
(可选)纠删代码 RBD 元数据池的名称。
dry-run
(可选)此参数会打印已执行命令的输出而不实际运行它们。
保存在上一步中运行脚本后生成的 JSON 输出。
输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [{"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": "<user-id>", "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": "<pool>"}}, {"name": "monitoring-endpoint", "kind": "CephCluster", "data": {"MonitoringEndpoint": "xxx.xxx.xxx.xxxx", "MonitoringPort": "xxxx"}}, {"name": "rook-ceph-dashboard-link", "kind": "Secret", "data": {"userID": "ceph-dashboard-link", "userKey": "<user-key>"}}, {"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.xxxx", "poolPrefix": "default"}}, {"name": "rgw-admin-ops-user", "kind": "Secret", "data": {"accessKey": "<access-key>", "secretKey": "<secret-key>"}}]
[{"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": "<user-id>", "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": "<pool>"}}, {"name": "monitoring-endpoint", "kind": "CephCluster", "data": {"MonitoringEndpoint": "xxx.xxx.xxx.xxxx", "MonitoringPort": "xxxx"}}, {"name": "rook-ceph-dashboard-link", "kind": "Secret", "data": {"userID": "ceph-dashboard-link", "userKey": "<user-key>"}}, {"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.xxxx", "poolPrefix": "default"}}, {"name": "rgw-admin-ops-user", "kind": "Secret", "data": {"accessKey": "<access-key>", "secretKey": "<secret-key>"}}]
上传生成的 JSON 文件。
- 登录 OpenShift Web 控制台。
-
点 Workloads
Secrets。 -
将项目设置为
openshift-storage
。 - 点 rook-ceph-external-cluster-details。
-
点 Actions (⋮)
Edit Secret。 - 点 Browse,再上传该 JSON 文件。
- 点 Save。
验证步骤
要验证 OpenShift Data Foundation 集群是否健康,且数据具有弹性,请导航到 Storage
Data foundation Storage Systems 选项卡,然后点击存储系统名称。 -
在 Overview
Block and File 标签页中,检查 Details 卡来验证 RHCS 仪表板链接是否可用,并检查 Status 卡以确认存储集群有一个绿色勾号指示它处于健康状态。 - 单击 Object 选项卡,并确认 Object Service 和数据弹性具有绿色勾号,指示其运行正常。RADOS 对象网关仅列出在以外部模式部署 OpenShift Data Foundation 时包含 RADOS 对象网关端点详细信息的情况。
-
在 Overview
- 如果验证步骤失败,请联系红帽支持。