31.5. Cluster Operator のアップグレード


Cluster Operator をアップグレードするには、最初のデプロイ方法と同じ方法を使用します。

31.5.1. インストールファイルを使用した Cluster Operator のアップグレード

この手順では、Streams for Apache Kafka 2.9 を使用するように Cluster Operator デプロイメントをアップグレードする方法を説明します。

install/cluster-operator/ ディレクトリー内のインストール YAML ファイルを使用して Cluster Operator をデプロイした場合は、この手順に従ってください。この手順には、Cluster Operator が複数またはすべての namespace を監視する場合に必要な設定の変更が含まれています。

Cluster Operator によって管理される Kafka クラスターの可用性は、アップグレード操作による影響を受けません。

注記

特定バージョンの Streams for Apache Kafka をサポートするドキュメントを参照して、そのバージョンにアップグレードする方法を確認してください。

前提条件

手順

  1. 以前の Cluster Operator のインストール時に行われた設定の変更をメモします。

    すべての変更は、新しいバージョンの Cluster Operator によって 上書き されます。

  2. カスタムリソースを更新して、Streams for Apache Kafka バージョン 2.9 で使用できるサポート対象の設定オプションを反映します。
  3. Cluster Operator が動作している namespace を反映するように、新しい Cluster Operator バージョンのインストールファイルを変更します。

    Linux の場合は、以下を使用します。

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
    Copy to Clipboard Toggle word wrap

    MacOS の場合は、以下を使用します。

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
    Copy to Clipboard Toggle word wrap
  4. Deployment 設定で環境変数を変更した場合は、その環境変数を使用するように 060-Deployment-strimzi-cluster-operator.yaml ファイルを編集します。

    • Cluster Operator が複数の namespace を監視している場合は、namespace のリストを STRIMZI_NAMESPACE 環境変数に追加します。
    • Cluster Operator がすべての namespace を監視している場合は、STRIMZI_NAMESPACE 環境変数に value: "*" を指定します。
  5. Cluster Operator が複数の namespace を監視している場合は、ロールバインディングを更新します。

    • 複数の namespace を監視する場合は、RoleBinding インストールファイル内の namespace を実際の namespace 名に置き換え、それぞれ の namespace のロールバインディングを作成します。

      namespace のロールバインディングの作成

      oc create -f install/cluster-operator/020-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace>
      oc create -f install/cluster-operator/023-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace>
      oc create -f install/cluster-operator/031-RoleBinding-strimzi-cluster-operator-entity-operator-delegation.yaml -n <watched_namespace>
      Copy to Clipboard Toggle word wrap

      たとえば、Cluster Operator が 3 つの namespace を監視している場合は、<watched_namespace> を各 namespace の名前に置き換えて、3 セットのロールバインディングを作成します。

    • すべての namespace を監視する場合は、クラスター全体のアクセスを許可するクラスターロールバインディングを再作成します (必要な場合)。

      ロールバインディングを使用してクラスター全体のアクセスを許可する

      oc create clusterrolebinding strimzi-cluster-operator-namespaced --clusterrole=strimzi-cluster-operator-namespaced --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
      oc create clusterrolebinding strimzi-cluster-operator-watched --clusterrole=strimzi-cluster-operator-watched --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
      oc create clusterrolebinding strimzi-cluster-operator-entity-operator-delegation --clusterrole=strimzi-entity-operator --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
      Copy to Clipboard Toggle word wrap

  6. 設定を更新したら、残りのインストールリソースとともにデプロイします。

    oc replace -f install/cluster-operator
    Copy to Clipboard Toggle word wrap

    ローリング更新が完了するのを待ちます。

  7. 新しい Operator バージョンが、アップグレード元の Kafka バージョンをサポートしなくなった場合は、エラーメッセージが返されます。

    これを解決するには、サポートされている Kafka バージョンにアップグレードします。

    1. Kafka カスタムリソースを編集します。
    2. spec kafka.version プロパティーをサポートされる Kafka バージョンに変更します。

    エラーメッセージが返されない場合は、次のステップに進み、後で Kafka バージョンをアップグレードできます。

  8. Kafka Pod のイメージを取得して、アップグレードが正常に完了したことを確認します。

    oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'
    Copy to Clipboard Toggle word wrap

    イメージタグに、新しい Streams for Apache Kafka バージョンと Kafka バージョンが表示されます。

    registry.redhat.io/amq-streams/strimzi-kafka-39-rhel9:2.9.3
    Copy to Clipboard Toggle word wrap

    また、Kafka リソースのステータスからアップグレードが正常に完了したことを確認 できます。

Cluster Operator はバージョン 2.9 にアップグレードされましたが、管理するクラスターで稼働している Kafka のバージョンは変更されていません。

31.5.2. OperatorHub を使用した Cluster Operator のアップグレード

OperatorHub から Streams for Apache Kafka をデプロイした場合、Operator Lifecycle Manager (OLM) を使用して、Streams for Apache Kafka Operator の更新チャネルを新しい Streams for Apache Kafka バージョンに変更します。

チャネルを更新すると、選択したアップグレード戦略に応じて、次のタイプのアップグレードのいずれかが開始されます。

  • 自動アップグレード
  • インストール開始前に承認が必要な手動アップグレード
注記

安定した チャンネルに登録すると、チャンネルを変更せずに自動更新を取得できます。ただし、インストール前のアップグレード手順が失われる可能性があるため、自動更新を有効にすることは推奨しません。バージョン固有のチャネルでのみ自動アップグレードを使用します。

OperatorHub を使用して Operator をアップグレードする方法の詳細は、インストール済み Operator の更新 (Openshift Operator ガイド参照) を参照してください。

31.5.3. OperatorHub を使用した Streams for Apache Kafka 1.7 以前からのアップグレード

OperatorHub を使用して Streams for Apache Kafka 1.7 以前からアップグレードする場合に必要な操作

Streams for Apache Kafka Operator をバージョン 2.9 にアップグレードする前に、次の変更を行う必要があります。

  • カスタムリソースおよび CRD を v1beta2 に変換します。
  • ControlPlaneListener フィーチャーゲートが無効な Streams for Apache Kafka のバージョンにアップグレードします。

これらの要件は、「1.7 より前のバージョンの Streams for Apache Kafka からアップグレードする」 を参照してください。

Streams for Apache Kafka 1.7 以前からアップグレードする場合は、次の手順を実行します。

  1. Streams for Apache Kafka 1.7 にアップグレードします。
  2. Streams for Apache Kafka 1.8 に付属する Red Hat Streams for Apache Kafka API 変換ツール を、Streams for Apache Kafka ソフトウェアダウンロードページ からダウンロードします。
  3. カスタムリソースおよび CRD を v1beta2 に変換します。

    詳細は、Streams for Apache Kafka 1.7 のアップグレードドキュメント を参照してください。

  4. OperatorHub で、Streams for Apache Kafka Operator のバージョン 1.7 を削除します。
  5. Streams for Apache Kafka Operator のバージョン 2.9 も存在する場合は削除します。

    存在しない場合は、次のステップに進みます。

    Streams for Apache Kafka Operator の Approval StrategyAutomatic に設定されている場合、Operator のバージョン 2.9 がクラスター内にすでに存在している可能性があります。リリース前にカスタムリソースおよび CRD を v1beta2 API バージョンに 変換しなかった 場合、Operator が管理するカスタムリソースおよび CRD は古い API バージョンを使用します。その結果、2.9 Operator は Pending 状態のままになります。このような場合、Streams for Apache Kafka Operator のバージョン 1.7 だけでなくバージョン 2.9 も削除する必要があります。

    両方の Operator を削除すると、新しい Operator バージョンがインストールされるまで、調整は一時停止されます。カスタムリソースへの変更が遅延しないように、次の手順を直ちに実行します。

  6. OperatorHub で、次のいずれかを実行します。

    • Streams for Apache Kafka Operator のバージョン 1.8 (ControlPlaneListener フィーチャーゲートがデフォルトで無効) にアップグレードします。
    • ControlPlaneListener フィーチャーゲートを無効にして、Streams for Apache Kafka Operator のバージョン 2.0 または 2.2 (ControlPlaneListener フィーチャーゲートがデフォルトで有効) にアップグレードします。
  7. 速やかに Streams for Apache Kafka Operator のバージョン 2.9 にアップグレードしてください。

    インストールされた 2.9 Operator はクラスターの監視を開始し、ローリング更新を実行します。このプロセス中に、クラスターのパフォーマンスが一時的に低下する場合があります。

31.5.4. 双方向 Topic Operator を使用する Streams for Apache Kafka バージョンからのアップグレード

Topic Operator をデプロイしてトピックを管理する場合、Cluster Operator は一方向のトピック管理を有効にします。つまり、Topic Operator は KafkaTopic リソースに関連付けられた Kafka トピックのみを管理し、Kafka クラスター内で個別に管理されるトピックには干渉しません。

以前は、Topic Operator は双方向モードで動作していたため、Kafka クラスター内のトピックに対しても操作を実行できました。双方向 Topic Operator を使用する Streams for Apache Kafka のバージョンから切り替える場合は、Cluster Operator をアップグレードした後、Operator によって使用されていた次の内部トピックに対してクリーンアップタスクを実行します。

  • strimzi-store-topic
  • strimzi-topic-operator
  • consumer-offsets
  • transaction-state

strimzi-store-topic および strimzi-topic-operator トピックでは、これらのトピックを管理するために使用されたリソースを削除します。

Operator によって使用される内部トピックの削除

oc delete $(oc get kt -n <namespace> -o name | grep strimzi-store-topic) \
  && oc delete $(oc get kt -n <namespace> -o name | grep strimzi-topic-operator)
Copy to Clipboard Toggle word wrap

コンシューマーオフセットとトランザクション状態を格納するための内部トピック (consumer-offsetstransaction-state) では、Kafka 内に保持しますが、Topic Operator での管理は推奨されません。

リソースを削除する前に管理を中止します。KafkaTopic リソースに strimzi.io/managed="false" のアノテーションを指定して、Topic Operator がそれらのトピックを管理しないことを指示します。

内部トピックの管理の中止

oc annotate $(oc get kt -n <namespace> -o name | grep consumer-offsets) strimzi.io/managed="false" \
  && oc annotate $(oc get kt -n <namespace> -o name | grep transaction-state) strimzi.io/managed="false"
Copy to Clipboard Toggle word wrap

KafkaTopic リソースのステータスをチェックして、調整が成功し、トピックの管理を停止する手順 に示されているようにトピックが管理されなくなったことを確認します。

管理を中止したら、KafkaTopic リソースを削除します。

内部トピックを管理するためのリソースの削除

oc delete $(oc get kt -n <namespace> -o name | grep consumer-offsets) \
  && oc delete $(oc get kt -n <namespace> -o name | grep transaction-state)
Copy to Clipboard Toggle word wrap

管理を中止しても、Kafka では削除されなくなります。

31.5.5. Cluster Operator をアップグレードすると Kafka バージョンエラーが返される

Cluster Operator を、使用している Kafka の現在のバージョンをサポートしていないバージョンにアップグレードすると、サポートされていない Kafka バージョン エラーが発生します。このエラーはすべてのインストール方法に適用され、Kafka をサポートされている Kafka バージョンにアップグレードする必要があることを意味します。Kafka リソースの spec.kafka.version をサポートされているバージョンに変更します。

oc を使用して、Kafka リソースの ステータス でこのようなエラーメッセージを確認できます。

エラーの Kafka ステータスの確認

oc get kafka <kafka_cluster_name> -n <namespace> -o jsonpath='{.status.conditions}'
Copy to Clipboard Toggle word wrap

<kafka_cluster_name> は、Kafka クラスターの名前に、<namespace> は、Pod を実行している OpenShift namespace に置き換えます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る