31.3. 升级 MetalLB
默认情况下,将命名空间订阅到 metallb-system
的 Subscription
自定义资源(CR)会自动将 installPlanApproval
参数设置为 Automatic
。这意味着,当红帽提供的 Operator 目录包含 MetalLB Operator 的较新版本时,MetalLB Operator 会自动升级。
如果需要手动控制 MetalLB Operator 升级,请将 installPlanApproval
参数设置为 Manual
。
31.3.1. 手动升级 MetalLB Operator
要手动控制升级 MetalLB Operator,您必须编辑将命名空间订阅到 metallb-system
的 Subscription
自定义资源(CR)。Subscription
CR 作为 Operator 安装的一部分创建,且 CR 默认将 installPlanApproval
参数设置为 Automatic
。
先决条件
- 将集群更新至最新的 z-stream 版本。
- 使用 OperatorHub 安装 MetalLB Operator。
-
使用具有
cluster-admin
角色的用户访问集群。
流程
输入以下命令在
metallb-system
命名空间中获取metallb-operator
订阅的 YAML 定义:$ oc -n metallb-system get subscription metallb-operator -o yaml
通过将
installPlanApproval
参数设置为Manual
来编辑Subscription
CR:apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: metallb-operator namespace: metallb-system # ... spec: channel: stable installPlanApproval: Manual name: metallb-operator source: redhat-operators sourceNamespace: openshift-marketplace # ...
输入以下命令查找 MetalLB Operator 的最新 OpenShift Container Platform 4.12 版本:
$ oc -n metallb-system get csv
输出示例
NAME DISPLAY VERSION REPLACES PHASE metallb-operator.v4.12.0 MetalLB Operator 4.12.0 Succeeded
输入以下命令检查命名空间中存在的安装计划。
$ oc -n metallb-system get installplan
将 install-tsz2g 显示为手动安装计划的输出示例
NAME CSV APPROVAL APPROVED install-shpmd metallb-operator.v4.12.0-202502261233 Automatic true install-tsz2g metallb-operator.v4.12.0-202503102139 Manual false
输入以下命令来编辑命名空间中存在的安装计划。确保将 <
;name_of_installplan
> 替换为安装计划的名称,如install-tsz2g
。$ oc edit installplan <name_of_installplan> -n metallb-system
在编辑器中打开安装计划后,将
spec.approval
参数设置为Manual
,并将spec.approved
参数设置为true
。注意编辑安装计划后,升级操作会启动。如果在升级操作过程中输入
oc -n metallb-system get csv
命令,则输出可能会显示Replacing
或Pending
状态。
验证
输入以下命令验证升级是否成功:
$ oc -n metallb-system get csv
输出示例
NAME DISPLAY VERSION REPLACE PHASE metallb-operator.v<latest>.0-202503102139 MetalLB Operator {product-version}.0-202503102139 metallb-operator.v{product-version}.0-202502261233 Succeeded