升级 Operator
在现有集群中将新版本的 Alauda Storage Operator 发布到 OperatorHub 时,请使用此操作步骤。
要将现有集群从 Ceph Squid (v19) 升级到 Ceph Tentacle (v20),请参阅 将 Ceph 从 Squid (v19) 升级到 Tentacle (v20)。此升级会更改 Operator channel,单独发布软件包不会触发此升级。
批准该 Operator 软件包即表示同时确认 Operator 控制平面和与该软件包绑定的 Ceph 镜像。请勿在控制台中修补 CephCluster.spec.cephVersion.image,也无需在详情页等待数据平面完成。
推荐使用 Alauda Storage 集群详情页上的 升级到 按钮。该按钮只会批准 rook-ceph/rook-operator 的待处理 InstallPlan。按钮不可用时,请使用 kubectl。
上传新软件包之前,请确认 Rook Operator Subscription 使用 手动批准。如果 installPlanApproval 为 Automatic,新版本出现在 catalog 中后,OLM 会立即开始升级 Operator。
目录
开始之前操作步骤1. 确认手动批准2. 上传新的 Operator 软件包3. 批准 Operator 软件包推荐:Ceph 详情页后备方案:kubectl4. 验证 Operator 和数据平面如果详情页按钮仍处于禁用状态相关主题开始之前
- 确定 Rook Operator 的 namespace。Distributed Storage 向导创建的默认 namespace 为
rook-ceph。 - 下载与集群架构匹配的新 Alauda Storage Operator 软件包。
- 对于 内部模式,请确认
CephCluster为Ready,且status.ceph.health为HEALTH_OK。本地运行状况不是HEALTH_OK时,详情页按钮会保持禁用状态。 - 对于 外部模式(
spec.external.enable: true),同一按钮只会升级 Operator,不会写入本地 Ceph 镜像。 - 请勿将生成的 CSV manifest 编辑为持久化自定义内容。后续的 OLM reconcile 可能会覆盖这些编辑。请参阅架构。
操作步骤
1. 确认手动批准
输出必须为 Manual。如果不是,请在上传软件包之前进行设置:
你也可以在 Marketplace > OperatorHub > Alauda Storage 中将 升级策略 设置为 手动。
2. 上传新的 Operator 软件包
使用 violet 上传新的 Alauda Storage 软件包,然后确认 OperatorHub 中显示目标版本。
按照上架软件包以及 Operator 中的 OperatorHub 操作步骤执行。
上传成功后,OperatorHub 会显示新版本可用。在 installPlanApproval 为 Manual 之前,请勿批准该版本。
3. 批准 Operator 软件包
OLM 会为新的 CSV 创建一个 InstallPlan。批准该计划即表示接受该 Operator 版本以及与该软件包绑定的 Ceph 镜像。
推荐:Ceph 详情页
- 登录并切换到 管理员 视图。
- 打开 Alauda Storage 集群详情页。
- 按钮启用后,会显示 升级到,后跟目标 CSV 版本。该版本来自待处理 InstallPlan 的目标 CSV(
spec.version,或 CSV 名称中的版本部分,例如rook-ceph.v4.4.1→4.4.1)。 - 单击该按钮。控制台会将该 InstallPlan
spec.approved设置为true。你可以离开此页面。
以下情况会导致按钮保持禁用:
- 当前用户无法更新
rook-ceph中的InstallPlan对象。 - 集群处于内部模式,且
status.ceph.health不是HEALTH_OK。 Subscription.status.installPlanRef未引用待处理且未批准的 InstallPlan。如果 OLM 尚未创建该 InstallPlan,仅 catalog 中有较新的 CSV 还不够。
批准的计划正在安装时,按钮可能会显示升级正在进行。待处理计划消失后,按钮会显示没有可用升级。
该按钮不会写入 spec.cephVersion.image,也不会解析 PackageManifest 镜像。
后备方案:kubectl
UpgradePending 和 InstallPlanPending=True 表示该计划正在等待批准。请仅批准引用的计划:
4. 验证 Operator 和数据平面
等待新的 CSV 为 Succeeded,并且 Subscription 为 AtLatestKnown:
对于内部模式,安装的 CSV 为 Succeeded 后,平台会将唯一 CSV relatedImages 条目中 name 为 ceph 的值写入 CephCluster.spec.cephVersion.image。如果该镜像已经是正在运行的值,Ceph daemon 不会滚动更新。如果软件包没有唯一的 name=ceph 镜像,平台不会猜测其他镜像。
确认:
phase=Ready和health=HEALTH_OK。spec.cephVersion.image与名为ceph的唯一 CSVrelatedImages条目匹配。- 现有 PVC 保持为
Bound。
对于外部模式,跳过本地镜像检查。现有消费者卷应保持为 Bound。
如果详情页按钮仍处于禁用状态
-
确认用户可以在
rook-ceph中更新installplans。 -
对于内部模式,确认
status.ceph.health为HEALTH_OK。 -
检查 Subscription 和其引用的 InstallPlan:
如果 catalog 中已有更新的 CSV,但没有待处理且尚未批准的 InstallPlan,请检查
startingCSV是否锁定了 Subscription。不要尝试从详情页修复该锁定。 -
如果 InstallPlan 已获批准,但 Ceph 镜像未更改,请确认已安装的 CSV 为
Succeeded,并且relatedImages中恰好包含一个名为ceph的条目。
不要删除 CephCluster 或 PV 对象来取消升级。
相关主题
- 架构 — OLM 升级概述
- 将 Ceph 从 Squid (v19) 升级到 Tentacle (v20) — 切换到下一个 Ceph 主版本
- 上架软件包 — 上架 Operator 软件包
- Operator —
Subscription、InstallPlan和批准策略 - 在内部模式下部署 — 安装时的 升级策略
Ceph 是 Red Hat, Inc. 或其子公司在美国及其他国家/地区的商标或注册商标。
Rook® 是 The Linux Foundation 的注册商标。
Alauda 是一家独立供应商。本产品与 LF Projects, LLC 或 The Linux Foundation 无关联,未获得其认可或赞助。所有商标均为其各自所有者的财产,在此仅用于标识目的。