10.9. Topic Operator モード間の切り替え


Streams for Apache Kafka をアップグレードまたはダウングレードするとき、または同じバージョンの Streams for Apache Kafka を使用するときに、そのバージョンでモードがサポートされている限り、トピック管理モードを切り替えることができます。

双方向トピック管理モードから一方向トピック管理モードへの切り替え

  1. UnidirectionalTopicOperator フィーチャーゲートを有効にします

    Cluster Operator は、Topic Operator とともに Entity Operator を一方向トピック管理モードでデプロイします。

  2. 双方向トピック管理モードで実行される Topic Operator をサポートする内部トピックは不要になったので、KafkaTopic リソースを削除して管理できます。

    oc delete $(oc get kt -n <namespace_name> -o name | grep strimzi-store-topic) \
      && oc delete $(oc get kt -n <namespace_name> -o name | grep strimzi-topic-operator)

    このコマンドは、名前が strimzi-store-topic および strimzi-topic-operator で始まる内部トピックを削除します。

  3. コンシューマーオフセットとトランザクション状態を保存するための内部トピックは、Kafka で保持する必要があります。したがって、KafkaTopic リソースを削除する前に、まず Topic Operator による管理を中止する必要があります。

    1. トピックの管理を停止します。

      oc annotate $(oc get kt -n <namespace_name> -o name | grep consumer-offsets) strimzi.io/managed="false" \
        && oc annotate $(oc get kt -n <namespace_name> -o name | grep transaction-state) strimzi.io/managed="false"

      KafkaTopic リソースに strimzi.io/managed="false" のアノテーションを指定して、Topic Operator がそれらのトピックを管理しないことを指定します。この場合、内部トピックを管理するためのアノテーションを、consumer-offsetstransaction-state で始まる名前のリソースに追加します。

    2. 管理が中断された場合は、KafkaTopic リソースを削除します (Kafka 内のトピックは削除されません)。

      oc delete $(oc get kt -n <namespace_name> -o name | grep consumer-offsets) \
        && oc delete $(oc get kt -n <namespace_name> -o name | grep transaction-state)

一方向から双方向トピック管理モードへの切り替え

  1. UnidirectionalTopicOperator フィーチャーゲートを無効にします

    Cluster Operator では、Topic Operator とともに Entity Operator を双方向のトピック管理モードでデプロイします。

    双方向トピック管理モードで実行される Topic Operator に必要な内部トピックが作成されます。

  2. トピックの削除を制御するためにファイナライザーが使用されているかどうかを確認します。KafkaTopic リソースがファイナライザーを使用している場合は、切り替え後に必ず次のいずれかを実行してください。

    • トピックからすべてのファイナライザーを削除します
    • Topic Operator の env 設定で STRIMZI_USE_FINALIZERS 環境変数を false に設定して、ファイナライザーを無効にします。

      Streams for Apache Kafka が管理するクラスター内で実行されている Topic Operator、またはスタンドアロンデプロイメントとして実行されている Topic Operator に、同じ設定を使用してください。

      Streams for Apache Kafka が管理するクラスターでトピックファイナライザーを無効にする

      apiVersion: kafka.strimzi.io/v1beta2
      kind: Kafka
      metadata:
        name: my-cluster
      spec:
        # ...
        entityOperator:
          topicOperator: {}
          userOperator: {}
          template:
            topicOperatorContainer:
              env:
                - name: STRIMZI_USE_FINALIZERS
                  value: "false"
      # ...

      スタンドアロンデプロイメントでのトピックファイナライザーの無効化

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: strimzi-topic-operator
      spec:
        template:
          spec:
            containers:
              - name: STRIMZI_USE_FINALIZERS
                value: "false"
      # ...

      Topic Operator は双方向モードでファイナライザーを使用しません。一方向モードから切り替えを行った後にファイナライザーが保持されている場合は、KafkaTopic と関連リソースを削除できません。

Topic Operator モード間の切り替え後に、トピックを作成して、Operator が正常に実行されていることを確認します。詳細は、「Kafka トピックの設定」 を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.