$ oc get subscription metallb-operator -n metallb-system -o yaml | grep currentCSV
如果您当前运行的是4.10版或更早版本的MetalLB Operator,请注意,自动更新到4.10版之后的任何版本都无效。从4.11版或更高版本的任何MetalLB Operator版本升级到较新版本是成功的。例如,从4.12版升级到4.13版将顺利进行。
以下是MetalLB Operator从4.10版及更早版本升级过程的摘要
删除已安装的MetalLB Operator版本,例如4.10。确保命名空间和metallb
自定义资源未被删除。
使用CLI,在之前安装MetalLB Operator的同一命名空间中安装MetalLB Operator 4.17。
此过程不适用于MetalLB Operator的自动z流更新,后者遵循标准的直接方法。 |
有关从4.10版及更早版本升级MetalLB Operator的详细步骤,请参阅以下指南。作为集群管理员,请使用OpenShift CLI (oc
)或Web控制台删除MetalLB Operator来启动升级过程。
集群管理员可以使用Web控制台从选定的命名空间中删除已安装的Operators。
使用具有cluster-admin
权限的帐户访问OpenShift Container Platform集群Web控制台。
导航到**Operators** → **已安装的Operators**页面。
搜索MetalLB Operator。然后点击它。
在**Operator详细信息**页面的右侧,从**操作**下拉菜单中选择**卸载Operator**。
将显示**卸载Operator?**对话框。
选择**卸载**以删除Operator、Operator部署和Pod。此操作之后,Operator将停止运行,并且不再接收更新。
此操作不会删除Operator管理的资源,包括自定义资源定义(CRD)和自定义资源(CR)。Web控制台启用的仪表板和导航项以及继续运行的集群外资源可能需要手动清理。要卸载Operator后删除这些资源,您可能需要手动删除Operator CRD。 |
集群管理员可以使用CLI从选定的命名空间中删除已安装的Operators。
使用具有cluster-admin
权限的帐户访问OpenShift Container Platform集群。
工作站上安装了oc
命令。
检查currentCSV
字段中已订阅的MetalLB Operator的当前版本
$ oc get subscription metallb-operator -n metallb-system -o yaml | grep currentCSV
currentCSV: metallb-operator.4.10.0-202207051316
删除订阅
$ oc delete subscription metallb-operator -n metallb-system
subscription.operators.coreos.com "metallb-operator" deleted
使用上一步中的currentCSV
值删除目标命名空间中Operator的CSV
$ oc delete clusterserviceversion metallb-operator.4.10.0-202207051316 -n metallb-system
clusterserviceversion.operators.coreos.com "metallb-operator.4.10.0-202207051316" deleted
从任何MetalLB Operator版本(包括4.10版)升级到4.11版及更高版本时,请从Operator组自定义资源(CR)中删除spec.targetNamespaces
。无论您使用Web控制台还是CLI删除MetalLB Operator,都必须删除spec。
MetalLB Operator 4.11版或更高版本仅支持 |
您可以访问具有cluster-admin
权限的OpenShift Container Platform集群。
您已安装OpenShift CLI (oc
)。
运行以下命令列出metallb-system
命名空间中的 Operator 组:
$ oc get operatorgroup -n metallb-system
NAME AGE
metallb-system-7jc66 85m
运行以下命令,验证与metallb-system
命名空间关联的 Operator 组 CR 中是否存在spec.targetNamespaces
:
$ oc get operatorgroup metallb-system-7jc66 -n metallb-system -o yaml
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
annotations:
olm.providedAPIs: ""
creationTimestamp: "2023-10-25T09:42:49Z"
generateName: metallb-system-
generation: 1
name: metallb-system-7jc66
namespace: metallb-system
resourceVersion: "25027"
uid: f5f644a0-eef8-4e31-a306-e2bbcfaffab3
spec:
targetNamespaces:
- metallb-system
upgradeStrategy: Default
status:
lastUpdated: "2023-10-25T09:42:49Z"
namespaces:
- metallb-system
运行以下命令,编辑 Operator 组,并删除spec
部分下存在的targetNamespaces
和metallb-system
:
$ oc edit n metallb-system
operatorgroup.operators.coreos.com/metallb-system-7jc66 edited
运行以下命令,验证spec.targetNamespaces
已从与metallb-system
命名空间关联的 Operator 组自定义资源中删除:
$ oc get operatorgroup metallb-system-7jc66 -n metallb-system -o yaml
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
annotations:
olm.providedAPIs: ""
creationTimestamp: "2023-10-25T09:42:49Z"
generateName: metallb-system-
generation: 2
name: metallb-system-7jc66
namespace: metallb-system
resourceVersion: "61658"
uid: f5f644a0-eef8-4e31-a306-e2bbcfaffab3
spec:
upgradeStrategy: Default
status:
lastUpdated: "2023-10-25T14:31:30Z"
namespaces:
- ""
以具有cluster-admin
角色的用户身份访问集群。
验证metallb-system
命名空间仍然存在。
$ oc get namespaces | grep metallb-system
metallb-system Active 31m
验证metallb
自定义资源仍然存在。
$ oc get metallb -n metallb-system
NAME AGE
metallb 33m
按照“使用 CLI 从 OperatorHub 安装”中的指南安装最新版本的 MetalLB Operator 4.17。
安装最新版本的 MetalLB Operator 4.17 时,必须将其安装到之前安装的同一命名空间。 |
验证已升级的 Operator 版本现在为 4.17 版本。
$ oc get csv -n metallb-system
NAME DISPLAY VERSION REPLACES PHASE
metallb-operator.4.17.0-202207051316 MetalLB Operator 4.17.0-202207051316 Succeeded