33.3. MetalLB のアップグレード

現在、MetalLB Operator のバージョン 4.10 以前のバージョンを実行している場合、4.10 以降のバージョンへの自動更新は機能しないことに注意してください。4.11 以降の任意のバージョンの MetalLB Operator から新しいバージョンへのアップグレードは成功します。たとえば、バージョン 4.12 からバージョン 4.13 へのアップグレードはスムーズに行われます。

4.10 以前からの MetalLB Operator のアップグレード手順の概要は次のとおりです。

  1. インストールされている MetalLB Operator バージョン (4.10 など) を削除します。namespace と metallb カスタムリソースが削除されていないことを確認してください。
  2. CLI を使用して、以前のバージョンの MetalLB Operator がインストールされていた namespace に MetalLB Operator 4.12 をインストールします。
注記

この手順は、標準の簡単な方法に従う MetalLB Operator の自動 z ストリーム更新には適用されません。

MetalLB Operator を 4.10 以前からアップグレードする詳細な手順については、次のガイダンスを参照してください。クラスター管理者は、OpenShift CLI (oc) または Web コンソールを使用して MetalLB Operator を削除し、アップグレードプロセスを開始します。

33.3.1. Web コンソールを使用してクラスターから MetalLB Operator を削除

クラスター管理者は Web コンソールを使用して、選択した namespace からインストールされた Operator を削除できます。

前提条件

  • cluster-admin 権限を持つアカウントを使用して OpenShift Container Platform クラスター Web コンソールにアクセスできる。

手順

  1. OperatorsInstalled Operators ページに移動します。
  2. MetalLB Operator を検索します。次に、それをクリックします。
  3. Operator Details ページの右側で、Actions ドロップダウンメニューから Uninstall Operator を選択します。

    Uninstall Operator? ダイアログボックスが表示されます。

  4. Uninstall を選択し、Operator、Operator デプロイメント、および Pod を削除します。この操作を実行すると、Operator は実行を停止し、更新を受信しなくなります。

    注記

    このアクションは、カスタムリソース定義 (CRD) およびカスタムリソース (CR) など、Operator が管理するリソースは削除されません。Web コンソールおよび継続して実行されるクラスター外のリソースによって有効にされるダッシュボードおよびナビゲーションアイテムには、手動でのクリーンアップが必要になる場合があります。Operator のアンインストール後にこれらを削除するには、Operator CRD を手動で削除する必要があります。

33.3.2. CLI を使用してクラスターから MetalLB Operator を削除

クラスター管理者は CLI を使用して、選択した namespace からインストールされた Operator を削除できます。

前提条件

  • 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 値を使用し、ターゲット namespace の 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

33.3.3. MetalLB Operator Operator グループの編集

4.10 以前の MetalLB Operator バージョンから 4.11 以降にアップグレードする場合は、Operator グループのカスタムリソース (CR) から spec.targetNamespaces を削除します。MetalLB Operator の削除に Web コンソールや CLI を使用したかにかかわらず、仕様を削除する必要があります。

注記

MetalLB Operator バージョン 4.11 以降は AllNamespaces インストールモードのみをサポートしますが、4.10 以前のバージョンは OwnNamespace モードまたは SingleNamespace モードをサポートします。

前提条件

  • cluster-admin 権限を使用して OpenShift Container Platform クラスターにアクセスできる。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次のコマンドを実行して、metallb-system namespace 内の Operator グループをリスト表示します。

    $ oc get operatorgroup -n metallb-system

    出力例

    NAME                   AGE
    metallb-system-7jc66   85m

  2. 次のコマンドを実行して、metallb-system namespace に関連付けられた 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. 次のコマンドを実行して、metallb-system namespace に関連付けられた Operator グループのカスタムリソースから 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: 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:
      - ""

33.3.4. MetalLB Operator のアップグレード

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスします。

手順

  1. metallb-system namespace がまだ存在することを確認します。

    $ 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.12 バージョンをインストールします。

    注記

    MetalLB Operator の最新の 4.12 バージョンをインストールする場合、以前にインストールしたのと同じ namespace に Operator をインストールする必要があります。

  4. Operator のアップグレードされたバージョンが 4.12 バージョンになったことを確認します。

    $ oc get csv -n metallb-system

    出力例

    NAME                                   DISPLAY            VERSION               REPLACES   PHASE
    metallb-operator.4.12.0-202207051316   MetalLB Operator   4.12.0-202207051316              Succeeded

33.3.5. 関連情報