将 Ceph 从 Squid (v19) 升级到 Tentacle (v20)
每个 Ceph 主版本都通过 rook-operator 软件包中各自的 Operator channel 发布:
现有集群会继续使用当前的 channel。将 Tentacle 软件包发布到 catalog 不会使集群迁移到该版本。您可以通过切换 Subscription channel 来选择升级时间。如果不切换 channel,集群将继续运行 Ceph Squid。
从 Squid 升级到 Tentacle 后无法回滚。Ceph daemon 运行 Tentacle 后,请勿将 Subscription 切换回 alpha,也不要将 CephCluster.spec.cephVersion.image 设置为 Squid 镜像。
要求
平台
- 集群运行的是 4.5 或更高版本。Rook 1.20 要求 Kubernetes 1.31 或更高版本,因此请在升级 Alauda Storage 前先升级平台。
- 包含
stable-1.20channel 的rook-operator软件包已上架到 catalog。请参阅上架软件包。
节点内核
运行 Ceph daemon 或挂载 Ceph 卷的所有节点都必须运行 Linux 内核 5.11 或更高版本。
检查每个节点的内核版本:
此升级已在 Red Hat Enterprise Linux 9.6、内核版本为 5.14.0-570.12.1.el9_6 的环境中,对 RBD 和 CephFS 内核客户端进行了验证。
集群状态
CephCluster为Ready,且status.ceph.health为HEALTH_OK。- 所有使用 Ceph storage class 的 PVC 均为
Bound。 rook-operatorSubscription使用 Manual 审批。请参阅确认 Manual 审批。
操作步骤
1. 检查当前状态
预期结果为:channel=alpha、approval=Manual、phase=Ready、health=HEALTH_OK,以及一个 19.2.x 版本。
确认 catalog 提供 stable-1.20 channel:
2. 切换 Subscription channel
OLM 会为 stable-1.20 中最新的 CSV 创建一个 InstallPlan。中间版本会被跳过。
3. 批准 InstallPlan
按照批准 Operator 软件包中的说明,从 Ceph 详情页面或使用 kubectl 批准待处理的计划。批准该计划后,Ceph 主版本升级将开始。
批准前,确认该计划的目标为 stable-1.20 CSV。
4. 等待升级完成
监视 daemon 版本,直到每个 daemon 都报告 20.2.x:
在包含三个节点和六个 OSD 的集群上进行验证时,升级约在 7 分钟内完成。OSD 数量越多,所需时间越长。
5. 验证
- 新 CSV 为
Succeeded。 phase=Ready、health=HEALTH_OK以及该版本为20.2.x。- 没有 Ceph 支持的 PVC 处于
Bound以外的状态。 - 现有工作负载可以读取其数据,并且可以创建和挂载新的 PVC。
如果 toolbox 可用,请确认所有 daemon 都运行 Tentacle:
如果升级未取得进展
- 切换 channel 后没有 InstallPlan:确认
PackageManifest中存在stable-1.20channel,并且Subscription没有用于固定旧版本的startingCSV。 - Operator 已升级,但 Ceph daemon 未滚动升级:确认新 CSV 为
Succeeded,并且其relatedImages恰好包含一个名为ceph的条目。 - 所有 daemon 重启后,健康状态仍为
HEALTH_WARN或HEALTH_ERR:从 toolbox 运行ceph health detail,并在继续操作前解决报告的问题。
请勿删除 CephCluster、Rook Operator 或 PV 对象来恢复升级。
相关主题
- 升级 Operator — 在当前 channel 中发布并批准新的 Operator 版本
- 上架软件包 — 上传 Operator 软件包
- Operator —
Subscription、InstallPlan和审批策略 - 支持的 OS 和 Kernel 版本
Ceph 是 Red Hat, Inc. 或其子公司在美国和其他国家/地区的商标或注册商标。 Rook® 是 The Linux Foundation 的注册商标。 Alauda 是一家独立供应商。本产品与 LF Projects, LLC 或 The Linux Foundation 无关联,也未获得其认可或赞助。所有商标均为其各自所有者的财产,此处仅用于识别目的。