6.2. CLI を使用した Operator のアップグレード


本セクションの手順では、OpenShift コマンドラインインターフェイス (CLI) を使用して、異なるバージョンの Operator を AMQ Broker 7.10 で利用可能な最新バージョンに更新する方法を説明します。

6.2.1. 前提条件

  • CLI を使用して最初に CLI を使用して Operator をインストールした場合のみ Operator をアップグレードする必要があります。OperatorHub を使用して Operator をインストールします (つまり、Operator は OpenShift Container Platform Web コンソールのプロジェクトの Operators Installed Operators に表示されます)、OperatorHub を使用して Operator をアップグレードする必要があります。OperatorHub を使用して Operator をアップグレードする方法については、「OperatorHub を使用した Operator のアップグレード」 を参照してください。

6.2.2. CLI を使用した Operator のアップグレード

OpenShift コマンドラインインターフェイス (CLI) を使用して、Operator を AMQ Broker 7.10 の最新バージョンにアップグレードできます。

手順

  1. Web ブラウザーで、AMQ Broker 7.10.7 patchesSoftware Downloads ページに移動します。
  2. Version ドロップダウンリストの値が 7.10.7 に設定され、Releases タブが選択されていることを確認します。
  3. AMQ Broker 7.10.7 Operator Installation and Example Files の横にある Download をクリックします。

    amq-broker-operator-7.10.7-ocp-install-examples.zip 圧縮アーカイブのダウンロードが自動的に開始されます。

  4. ダウンロードが完了したら、アーカイブを選択したインストールディレクトリーに移動します。以下の例では、アーカイブを ~/broker/operator という名前のディレクトリーに移動します。

    $ mkdir ~/broker/operator
    $ mv amq-broker-operator-7.10.7-ocp-install-examples.zip ~/broker/operator
  5. 選択したインストールディレクトリーで、アーカイブの内容をデプロイメントします。以下に例を示します。

    $ cd ~/broker/operator
    $ unzip amq-broker-operator-operator-7.10.7-ocp-install-examples.zip
  6. 既存の Operator デプロイメントが含まれるプロジェクトの管理者として OpenShift Container Platform にログインします。

    $ oc login -u <user>
  7. Operator バージョンをアップグレードする OpenShift プロジェクトに切り替えます。

    $ oc project <project-name>
  8. ダウンロードした最新の Operator アーカイブの deploy ディレクトリーで、operator.yaml ファイルを開きます。

    注記

    operator.yaml ファイルでは、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。

  9. 以前 の Operator デプロイメントの operator.yaml ファイルを開きます。以前の設定で指定したデフォルト以外の値が新しい operator.yaml 設定ファイルに複製されていることを確認します。
  10. 新しい operator.yaml ファイルでは、Operator はデフォルトで controller-manager という名前になっています。controller-manager のすべてのインスタンスを amq-broker-operator (以前のバージョンの Operator の名前) に置き換えて、ファイルを保存します。以下に例を示します。

    spec:
    ...
      selector
        matchLabels
          name: amq-broker-operator
    ...
  11. Operator に含まれる CRD を更新します。Operator をデプロイする前に、CRD を更新する必要があります。

    1. メインブローカー CRD を更新します。

      $ oc apply -f deploy/crds/broker_activemqartemis_crd.yaml
    2. アドレス CRD を更新します。

      $ oc apply -f deploy/crds/broker_activemqartemisaddress_crd.yaml
    3. スケールダウンコントローラー CRD を更新します。

      $ oc apply -f deploy/crds/broker_activemqartemisscaledown_crd.yaml
    4. セキュリティー CRD を更新します。

      $ oc apply -f deploy/crds/broker_activemqartemissecurity_crd.yaml
  12. AMQ Broker Operator 7.10.0 からのアップグレードのみの場合は、Operator と StatefulSet を削除します。

    デフォルトでは、新しい Operator は StatefulSet を削除して、7.10.0 で Operator により StatefulSet セレクターに誤って追加されたカスタムと Operator メータリングラベルを削除します。Operator が StatefulSet を削除すると、既存のブローカー Pod も削除されるため、一時的なブローカーの停止が発生します。停止を回避するには、以下の手順を実行して、ブローカー Pod を削除せずに Operator と StatefulSet を削除します。

    1. Operator を削除します。

      $ oc delete -f deploy/operator.yaml
    2. --cascade=orphan オプションを指定して StatefulSet を削除し、ブローカー Pod を孤立させます。孤立したブローカー Pod は、StatefulSet が削除された後も引き続き実行されます。

      $ oc delete statefulset <statefulset-name> --cascade=orphan
  13. AMQ Broker Operator 7.10.0 または 7.10.1 からアップグレードする場合は、メインブローカー CR に application または ActiveMQArtemis というラベルが deploymentPlan.labels 属性で設定されているか確認します。

    これらのラベルは、Operator が Pod にラベルを割り当てるために予約されており、7.10.1 以降ではカスタムラベルとして許可されていません。これらのカスタムラベルがメインブローカー CR で設定されていた場合、Operator が割り当てた Pod のラベルはカスタムラベルによって上書きされました。これらのカスタムラベルのいずれかがメインブローカー CR で設定されている場合は、次の手順を実行して Pod で正しいラベルを復元し、CR からラベルを削除します。

    1. 7.10.0 からアップグレードする場合は、前の手順で Operator を削除しています。7.10.1 からアップグレードする場合は、Operator を削除します。

      $ oc delete -f deploy/operator.yaml
    2. 次のコマンドを実行して、正しい Pod ラベルを復元します。次の例では、ex-aao はデプロイされた StatefulSet の名前です。

      $ for pod in $(oc get pods | grep -o '^ex-aao[^ ]*') do; oc label --overwrite pods $pod ActiveMQArtemis=ex-aao application=ex-aao-app; done
    3. CR の deploymentPlan.labels 属性から、application ラベルと ActiveMQArtemis ラベルを削除します。

      1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。

        oc login -u <user> -p <password> --server=<host:port>
      2. ダウンロードした Operator インストールアーカイブの deploy/crs ディレクトリーに含まれる broker_activemqartemis_cr.yaml というサンプル CR ファイルを開きます。
      3. CR の deploymentPlan.labels 属性で、application または ActiveMQArtemis というカスタムラベルをすべて削除します。
      4. CR ファイルを保存します。
      5. CR インスタンスをデプロイします。

        1. ブローカーデプロイメントのプロジェクトに切り替えます。

          $ oc project <project_name>
        2. CR を適用します。

          $ oc apply -f <path/to/broker_custom_resource_instance>.yaml
    4. 以前の Operator を削除した場合は、新しい Operator をデプロイします。

       $ oc create -f deploy/operator.yaml
  14. 更新された Operator 設定を適用します。

    $ oc apply -f deploy/operator.yaml
  15. 新しい Operator は、以前のブローカーのデプロイメントを認識して管理できます。デプロイメントの CR で自動更新が有効になっている場合、Operator の調整プロセスは各ブローカー Pod をアップグレードします。自動更新が有効になっていない場合は、CR で次の属性を設定することで有効にできます。

    spec:
        ...
        upgrades:
            enabled: true
            minor: true

    自動更新を有効にする方法の詳細は、「AMQ Broker バージョンの指定によるブローカーコンテナーイメージのアップグレード」 を参照してください。

    注記

    調整プロセスが開始されない場合は、デプロイをスケーリングすることでプロセスを開始できます。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。

  16. 必要に応じて、アップグレードされたブローカーで利用可能な新機能の CR に属性を追加します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.