×

如果您当前运行的是4.10版或更早版本的MetalLB Operator,请注意,自动更新到4.10版之后的任何版本都无效。从4.11版或更高版本的任何MetalLB Operator版本升级到较新版本是成功的。例如,从4.12版升级到4.13版将顺利进行。

以下是MetalLB Operator从4.10版及更早版本升级过程的摘要

  1. 删除已安装的MetalLB Operator版本,例如4.10。确保命名空间和metallb自定义资源未被删除。

  2. 使用CLI,在之前安装MetalLB Operator的同一命名空间中安装MetalLB Operator 4.17。

此过程不适用于MetalLB Operator的自动z流更新,后者遵循标准的直接方法。

有关从4.10版及更早版本升级MetalLB Operator的详细步骤,请参阅以下指南。作为集群管理员,请使用OpenShift CLI (oc)或Web控制台删除MetalLB Operator来启动升级过程。

使用Web控制台从集群中删除MetalLB Operator

集群管理员可以使用Web控制台从选定的命名空间中删除已安装的Operators。

先决条件
  • 使用具有cluster-admin权限的帐户访问OpenShift Container Platform集群Web控制台。

步骤
  1. 导航到**Operators** → **已安装的Operators**页面。

  2. 搜索MetalLB Operator。然后点击它。

  3. 在**Operator详细信息**页面的右侧,从**操作**下拉菜单中选择**卸载Operator**。

    将显示**卸载Operator?**对话框。

  4. 选择**卸载**以删除Operator、Operator部署和Pod。此操作之后,Operator将停止运行,并且不再接收更新。

    此操作不会删除Operator管理的资源,包括自定义资源定义(CRD)和自定义资源(CR)。Web控制台启用的仪表板和导航项以及继续运行的集群外资源可能需要手动清理。要卸载Operator后删除这些资源,您可能需要手动删除Operator CRD。

使用CLI从集群中删除MetalLB Operator

集群管理员可以使用CLI从选定的命名空间中删除已安装的Operators。

先决条件
  • 使用具有cluster-admin权限的帐户访问OpenShift Container Platform集群。

  • 工作站上安装了oc命令。

步骤
  1. 检查currentCSV字段中已订阅的MetalLB Operator的当前版本

    $ oc get subscription metallb-operator -n metallb-system -o yaml | grep currentCSV
    示例输出
      currentCSV: metallb-operator.4.10.0-202207051316
  2. 删除订阅

    $ oc delete subscription metallb-operator -n metallb-system
    示例输出
    subscription.operators.coreos.com "metallb-operator" deleted
  3. 使用上一步中的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 Operator组

从任何MetalLB Operator版本(包括4.10版)升级到4.11版及更高版本时,请从Operator组自定义资源(CR)中删除spec.targetNamespaces。无论您使用Web控制台还是CLI删除MetalLB Operator,都必须删除spec。

MetalLB Operator 4.11版或更高版本仅支持AllNamespaces安装模式,而4.10版或更早版本支持OwnNamespaceSingleNamespace模式。

先决条件
  • 您可以访问具有cluster-admin权限的OpenShift Container Platform集群。

  • 您已安装OpenShift CLI (oc)。

步骤
  1. 运行以下命令列出metallb-system命名空间中的 Operator 组:

    $ oc get operatorgroup -n metallb-system
    示例输出
    NAME                   AGE
    metallb-system-7jc66   85m
  2. 运行以下命令,验证与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
  3. 运行以下命令,编辑 Operator 组,并删除spec部分下存在的targetNamespacesmetallb-system

    $ oc edit n metallb-system
    示例输出
    operatorgroup.operators.coreos.com/metallb-system-7jc66 edited
  4. 运行以下命令,验证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:
      - ""

升级 MetalLB Operator

先决条件
  • 以具有cluster-admin角色的用户身份访问集群。

步骤
  1. 验证metallb-system命名空间仍然存在。

    $ oc get namespaces | grep metallb-system
    示例输出
    metallb-system                                     Active   31m
  2. 验证metallb自定义资源仍然存在。

    $ oc get metallb -n metallb-system
    示例输出
    NAME      AGE
    metallb   33m
  3. 按照“使用 CLI 从 OperatorHub 安装”中的指南安装最新版本的 MetalLB Operator 4.17。

    安装最新版本的 MetalLB Operator 4.17 时,必须将其安装到之前安装的同一命名空间。

  4. 验证已升级的 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