更新 OpenShift Data Foundation
针对集群和存储管理员的有关升级的说明
摘要
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
对红帽文档提供反馈
我们感谢您对文档提供反馈信息。请告诉我们如何让它更好。
要提供反馈,请创建一个 Bugzilla ticket:
- 进入 Bugzilla 网站。
- 在 Component 部分中,选择 文档。
- 在 Description 中输入您要提供的信息。包括文档相关部分的链接。
- 点 Submit Bug。
第 1 章 OpenShift Data Foundation 更新过程概述
本章可帮助您在所有 Red Hat OpenShift Data Foundation 部署(Internal、Internal-Attached 和 External)在次版本和 z-stream 之间升级。所有部署的升级过程都保持不变。
您可以通过启用自动更新(如果没有在 operator 安装过程中进行)或执行手工更新,在次版本间(如 4.11 和 4.12 间)或在 z-stream 更新之间(如 4.12.0 和 4.12.1 间)升级 OpenShift Data Foundation 及其组件。当新的 z-stream 版本可用时,如果更新策略被设置为 Automatic,升级过程会自动触发。
您还需要为内部和外部模式部署按照以下顺序升级 Red Hat OpenShift Data Foundation 的不同部分:
- 根据 OpenShift Container Platform 更新集群文档更新 OpenShift Container Platform。
更新 Red Hat OpenShift Data Foundation.
- 要准备断开连接的环境以获取更新,请参阅 Operator 指南,在受限网络中使用 Operator Lifecycle Manager,以便在使用时能够更新 OpenShift Data Foundation 和 Local Storage Operator。
- 有关在次版本间更新的信息,请参阅将 Red Hat OpenShift Data Foundation 4.11 更新至 4.12。
- 有关 z-stream 版本之间的更新,请参阅将 Red Hat OpenShift Data Foundation 4.12.x 更新至 4.12.y。
- 若要更新外部模式部署,还必须执行 更新 Red Hat OpenShift Data Foundation 外部机密 一节中的步骤。
- 如果使用本地存储,请更新 Local Storage operator。如果您不确定,请参阅检查 Local Storage Operator 部署。
更新注意事项
开始之前,请先查阅以下重要注意事项:
Red Hat OpenShift Container Platform 版本与 Red Hat OpenShift Data Foundation 相同。
如需有关 OpenShift Container Platform 和 Red Hat OpenShift Data Foundation 支持的组合的更多信息,请参阅 Interoperability Matrix。
- 要了解集群是否在内部还是外部模式中部署,请参阅知识库文章了解如何确定 ODF 集群是否在内部或外部模式中存储。
- 只有在 Local Storage Operator 版本与 Red Hat OpenShift Container Platform 版本匹配时,才会完全支持 Local Storage Operator。
- 灵活的扩展功能仅适用于 OpenShift Data Foundation 的新部署。如需更多信息,请参阅扩展存储指南。
第 2 章 OpenShift Data Foundation 升级频道和发行版本
在 OpenShift Container Platform 4.1 中,红帽引进了升级频道的概念,用于为集群升级推荐适当的版本。通过控制升级的速度,这些升级频道允许您选择升级策略。当 OpenShift Data Foundation 在 OpenShift Container Platform 中作为 Operator 部署时,它遵循相同的策略,通过在多个频道中提供修复来控制升级的速度。升级频道与 OpenShift Data Foundation 的次要版本关联。
例如,OpenShift Data Foundation 4.12 升级频道推荐在 4.12 内升级。不建议升级到将来的版本。这可确保管理员明确决定升级到下一个 OpenShift Data Foundation 次要版本。
升级频道仅控制版本选择,不会影响安装的集群版本; odf-operator
决定要安装的 OpenShift Data Foundation 版本。默认情况下,它会始终安装最新的 OpenShift Data Foundation 版本,维护与 OpenShift Container Platform 的兼容性。因此,在 OpenShift Container Platform 4.12 中,OpenShift Data Foundation 4.12 将是可安装的最新版本。
OpenShift Data Foundation 升级与 OpenShift Container Platform 升级相关联,以确保与 OpenShift Container Platform 保持兼容性和互操作性。对于 OpenShift Data Foundation 4.12,OpenShift Container Platform 4.12 和 4.13(在正式发布时)被支持。OpenShift Container Platform 4.13 支持维护 OpenShift Data Foundation 与 OpenShift Container Platform 的正向兼容性。使 OpenShift Data Foundation 版本与 OpenShift Container Platform 相同,以便获得该发行版本中的所有功能和增强功能的优势。
由于 Kubernetes 的设计,次版本之间的所有 OpenShift Container Platform 升级都必须按顺序进行。您必须从 OpenShift Container Platform 4.10 更新至 4.11,然后再更新至 4.12。您无法直接从 OpenShift Container Platform 4.10 更新至 4.12。如需更多信息,请参阅 OpenShift Container Platform 文档中的更新集群指南中的准备执行 EUS-to-EUS 更新。
OpenShift Data Foundation 4.12 提供了以下升级频道:
- stable-4.12
- eus-4.y(仅在运行偶数 4.y 集群发行版本时,如 4.12)
stable-4.12 频道
新版本正式发布后,与次版本对应的 stable 频道将使用可用于升级的新镜像进行更新。您可以使用 stable-4.12
频道从 OpenShift Data Foundation 4.11 升级,并在 4.12 内升级。
eus-4.y 频道
除了稳定(stable)的频道外,所有次版本号为偶数的 OpenShift Container Platform 次版本还会提供延长的更新支持(EUS)。对于具有标准和高级订阅的客户,这些 EUS 版本将完全支持和维护支持阶段延长至 18 个月。stable-4.y 和 eus-4.y 频道的唯一区别在于,只有下一个 EUS 版本可用时 EUS 频道才会包括这个版本。
第 3 章 将 Red Hat OpenShift Data Foundation 4.11 更新至 4.12
本章可帮助您在所有 Red Hat OpenShift Data Foundation 部署(非附加和外部)在次版本间进行升级。所有部署的升级过程都保持不变。唯一的区别在在升级后的结果。
- 对于 Internal 和 Internal- attached 部署,升级 OpenShift Data Foundation 会升级所有 OpenShift Data Foundation 服务,包括后端 Ceph Storage 集群。
对于外部模式部署,升级 OpenShift Data Foundation 会仅升级 OpenShift Data Foundation 服务,同时后端 Ceph 存储集群保持不变,需要单独升级。
我们建议升级 RHCS 和 OpenShift Data Foundation,以获取新的功能支持、安全修复和其他程序错误修复。由于我们对 RHCS 升级没有强烈依赖,因此您可以先升级 OpenShift Data Foundation operator,然后再升级 RHCS 升级,或反之亦然。请参阅 解决方案 以了解更多关于 Red Hat Ceph Storage 版本的信息。
不支持直接从 4.11 之前的版本升级到 4.12。
先决条件
- 确保 OpenShift Container Platform 集群已更新至版本 4.12.X 的最新稳定版本,请参阅 更新集群。
确保 OpenShift Data Foundation 集群正常运行,数据具有弹性。
- 进入到 Storage → Data Foundation → Storage Systems 选项卡,然后点存储系统名称。
- 检查 Overview - Block and File 和 Object 选项卡的状态卡上绿色勾号。绿色勾号表示 存储集群、对象服务和数据弹性都是健康的。
确保所有 OpenShift Data Foundation Pod(包括操作器 Pod)在
openshift-storage
命名空间中处于 Running 状态。要查看 pod 的状态,在 OpenShift Web 控制台中点 Workloads → Pods。从 Project 下拉列表中选择
openshift-storage
。注意如果禁用 Show default projects 选项,请使用切换按钮列出所有默认项目。
- 确保您有足够的时间完成 OpenShift 数据基础更新过程,因为更新时间因集群中运行的 OSD 数量而异。
流程
- 在 OpenShift Web 控制台中,导航到 Operators → Installed Operators。
-
选择
openshift-storage
项目。 - 点 OpenShift Data Foundation operator 名称。
- 点 Subscription 标签页,点 Update Channel 下的链接。
- 选择 Stable-4.12 更新频道并保存。
如果 Upgrade status 显示
requires approval
,请单击 requires approval。- 在 Install Plan Details 页面中,单击 Preview Install Plan。
检查安装计划并点 Approve。
等待 Status 从
Unknown
改为Created
。
- 导航到 Operators → Installed Operators。
选择
openshift-storage
项目。等待 OpenShift Data Foundation Operator Status 更改为 Up to date。
验证步骤
检查 OpenShift Data Foundation 名称下面的 Version,并检查 Operator 状态。
-
导航到 Operators → Installed Operators,再选择
openshift-storage
项目。 - 升级完成后,新版本会更新到 OpenShift 数据基础的新版本号,并通过绿色勾号更改 Succeeded 状态。
-
导航到 Operators → Installed Operators,再选择
验证 OpenShift Data Foundation 集群是否正常运行并且数据具有弹性。
- 进入到 Storage → Data Foundation → Storage Systems 选项卡,然后点存储系统名称。
- 检查 Overview - Block 和 File 和 Object 选项卡的状态卡上绿色勾号。绿色勾号表示存储集群、对象服务和数据弹性是健康的。
- 如果验证步骤失败,请联系红帽支持。
在更新外部模式部署后,还必须更新外部 secret。具体步骤,请参阅 更新 OpenShift 数据基础外部 secret。
其它资源
如果您在更新 OpenShift Data Foundation 时遇到任何问题,请参阅故障排除指南中的常见的进行故障排除所需的日志部分。
第 4 章 将 Red Hat OpenShift Data Foundation 4.12.x 更新至 4.12.y
本章可帮助您在所有 Red Hat OpenShift Data Foundation 部署(Internal、Internal-Attached 和 External)中升级 z-stream 版本。所有部署的升级过程都保持不变。唯一的区别在在升级后的结果。
- 对于 Internal 和 Internal- attached 部署,升级 OpenShift Data Foundation 会升级所有 OpenShift Data Foundation 服务,包括后端 Ceph Storage 集群。
对于外部模式部署,升级 OpenShift Data Foundation 会仅升级 OpenShift Data Foundation 服务,同时后端 Ceph 存储集群保持不变,需要单独升级。
我们建议升级 RHCS 和 OpenShift Data Foundation,以获取新的功能支持、安全修复和其他程序错误修复。由于我们对 RHCS 升级没有强烈依赖,因此您可以先升级 OpenShift Data Foundation operator,然后再升级 RHCS 升级,或反之亦然。请参阅 解决方案 以了解更多关于 Red Hat Ceph Storage 版本的信息。
当新的 z-stream 发行版本可用时,升级过程会在更新策略被设置为 Automatic
时自动触发。如果更新策略被设置为 Manual
,则使用以下步骤。
先决条件
- 确保 OpenShift Container Platform 集群已更新至版本 4.12.X 的最新稳定版本,请参阅 更新集群。
确保 OpenShift Data Foundation 集群正常运行,数据具有弹性。
- 进入到 Storage → Data Foundation → Storage Systems 选项卡,然后点存储系统名称。
- 检查 Overview - Block 和 File 和 Object 选项卡的状态卡上绿色勾号。绿色勾号表示存储集群、对象服务和数据弹性是健康的。
确保所有 OpenShift Data Foundation Pod(包括操作器 Pod)在
openshift-storage
命名空间中处于 Running 状态。要查看 pod 的状态,在 OpenShift Web 控制台中点 Workloads → Pods。从 Project 下拉列表中选择
openshift-storage
。注意如果禁用 Show default projects 选项,请使用切换按钮列出所有默认项目。
- 确保您有足够的时间完成 OpenShift 数据基础更新过程,因为更新时间因集群中运行的 OSD 数量而异。
流程
- 在 OpenShift Web 控制台中,导航到 Operators → Installed Operators。
选择
openshift-storage
项目。注意如果禁用 Show default projects 选项,请使用切换按钮列出所有默认项目。
- 单击 OpenShift Data Foundation 操作器名称。
- 点 Subscription 标签页。
-
如果 Upgrade Status 显示
需要批准
,请单击 require approval 链接。 - 在 InstallPlan Details 页面中点 Preview Install Plan。
- 检查安装计划并点 Approve。
-
等待 Status 从
Unknown
变为Created
。
验证步骤
检查 OpenShift Data Foundation 名称下面的 Version,并检查 Operator 状态。
-
导航到 Operators → Installed Operators,再选择
openshift-storage
项目。 - 升级完成后,新版本会更新到 OpenShift 数据基础的新版本号,并通过绿色勾号更改 Succeeded 状态。
-
导航到 Operators → Installed Operators,再选择
验证 OpenShift 数据基础集群是否正常运行并且数据具有弹性。
- 进入到 Storage → Data Foundation → Storage Systems 选项卡,然后点存储系统名称。
- 检查 Overview - Block 和 File 和 Object 选项卡的状态卡上绿色勾号。绿色勾号表示存储集群、对象服务和数据弹性是健康的
- 如果验证步骤失败,请联系红帽支持。
第 5 章 更改更新批准策略
为确保在同一频道中有新更新时自动更新存储系统,我们建议把更新批准策略设置为 Automatic
。将更新批准策略更改为 Manual
需要在每次升级时手动批准。
流程
- 导航到 Operators → Installed Operators。
从 Project 下拉列表中选择
openshift-storage
。注意如果禁用 Show default projects 选项,请使用切换按钮列出所有默认项目。
- 单击 OpenShift Data Foundation operator 名称
- 转至 订阅 选项卡。
- 单击 铅笔 图标以更改 更新批准。
- 选择更新批准策略并点 Save。
验证步骤
- 验证 Update 批准显示了它下面新选择的批准策略。
第 6 章 更新 OpenShift Data Foundation 外部机密
在升级到最新版本的 OpenShift Data Foundation 后,更新 OpenShift Data Foundation 外部机密。
批处理更新不需要更新外部 secret。例如,当从 OpenShift Data Foundation 4.12.x 更新至 4.12.y 时。
先决条件
- 将 OpenShift Container Platform 集群更新至 4.12.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 脚本。# 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 管理员来执行此操作。# python3 ceph-external-cluster-details-exporter.py --upgrade
用户的更新权限被设置为:
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 脚本:
# 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
。注意确保除 monitoring-endpoint 和 monitoring-endpoint-port 之外的所有参数,包括可选参数,与以外部模式部署 OpenShift Data Foundation 期间所用的相同。
保存在上一步中运行脚本后生成的 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": "<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 对象网关端点详细信息的情况。
- 如果验证步骤失败,请联系红帽支持。