第5章 Topic Operator の使用


5.1. Topic Operator の使用に関する推奨事項

トピックを使用する場合は、一貫した方法で使用し、常に KafkaTopic リソースで操作するか、またはトピックで直接操作します。特定のトピックで、両方の方法を頻繁に切り替えないでください。

トピックの性質を反映するトピック名を使用し、後で名前を変更できないことに注意してください。

Kafka でトピックを作成する場合は、有効な OpenShift リソース名である名前を使用します。それ以外の場合は、Topic Operator は対応する KafkaTopic を OpenShift ルールに準じた名前で作成する必要があります。

注記

OpenShift の識別子および名前の推奨事項については、OpenShift コミュニティーの記事「Identifiers and Names」を参照してください。

Kafka トピックの命名規則

Kafka と OpenShift では、Kafka と KafkaTopic.metadata.name でのトピックの命名にそれぞれ独自の検証ルールを適用します。トピックごとに有効な名前があり、他のトピックには無効です。

spec.topicName プロパティーを使用すると、OpenShift の Kafka トピックでは無効な名前を使用して、Kafka で有効なトピックを作成できます。

spec.topicName プロパティーは Kafka の命名検証ルールを継承します。

  • 249 文字を超える名前は使用できません。
  • Kafka トピックの有効な文字は ASCII 英数字、._、および - です。
  • 名前を . または .. にすることはできませんが、.exampleTopic..exampleTopic のように名前で使用できます。

spec.topicName は変更しないでください。

以下に例を示します。

kind: KafkaTopic
metadata:
  name: topic-name-1
spec:
  topicName: topicName-1 # Upper case is invalid in OpenShift
  # ...

上記は下記のように変更できません

kind: KafkaTopic
metadata:
  name: topic-name-1
spec:
  topicName: name-2
  # ...
注記

Kafka Streams など一部の Kafka クライアントアプリケーションは、プログラムを使用して Kafka でトピックを作成できます。これらのトピックに、OpenShift リソース名としては無効な名前が付いている場合、Topic Operator はそれらのトピックに Kafka 名に基づく有効な名前を付けます。無効な文字が置き換えられ、ハッシュが名前に追加されます。

5.2. トピックの作成

この手順では、KafkaTopic OpenShift リソースを使用して Kafka トピックを作成する方法を説明します。

前提条件

手順

  1. 作成する KafkaTopic が含まれるファイルを準備します。

    KafkaTopic の例

    apiVersion: kafka.strimzi.io/v1beta1
    kind: KafkaTopic
    metadata:
      name: orders
      labels:
        strimzi.io/cluster: my-cluster
    spec:
      partitions: 10
      replicas: 2

    注記

    KafkaTopic.spec.topicName プロパティーの設定が必要ないため、トピック名を有効な OpenShift リソース名にすることが推奨されます。KafkaTopic.spec.topicName は作成後に変更することはできません

    注記

    KafkaTopic.spec.partitions を減らすことはできません。

  2. OpenShift で KafkaTopic リソースを作成します。

    oc apply を使用してこれを行うことができます。

    oc apply -f your-file

その他のリソース

5.3. トピックの変更

この手順は、KafkaTopic OpenShift リソースを使用して、既存の Kafka トピックの設定を変更する方法を説明します。

前提条件

手順

  1. 必要な KafkaTopic が含まれるファイルを準備します。

    KafkaTopic の例

    apiVersion: kafka.strimzi.io/v1beta1
    kind: KafkaTopic
    metadata:
      name: orders
      labels:
        strimzi.io/cluster: my-cluster
    spec:
      partitions: 16
      replicas: 2

    ヒント

    oc get kafkatopic orders -o yaml を使用すると、現行バージョンのリソースを取得できます。

    注記

    KafkaTopic.spec.topicName 変数を使用したトピック名の変更、および KafkaTopic.spec.partitions 変数を使用したパーティションサイズの縮小は、Kafka ではサポートされていません。

    注意

    キーのあるトピックの spec.partitions を増やすと、レコードをパーティション化する方法が変更されます。これは、トピックがセマンティックパーティションを使用するとき、特に問題になる場合があります。

  2. OpenShift で KafkaTopic リソースを更新します。

    oc apply を使用してこれを行うことができます。

    oc apply -f your-file

その他のリソース

5.4. トピックの削除

この手順では、KafkaTopic OpenShift リソースを使用して Kafka トピックを削除する方法を説明します。

前提条件

  • 稼働中の Kafka クラスターが必要です。
  • 稼働中の Topic Operator が必要です (通常は Entity Operator でデプロイされます)。
  • 削除する既存の KafkaTopic
  • delete.topic.enable=true (デフォルト)
注記

delete.topic.enable プロパティーは、Kafka.spec.kafka.configtrue に設定する必要があります。それ以外の場合は、ここで説明した手順によって KafkaTopic リソースが削除されますが、Kafka トピックとそのデータは保持されます。Topic Operator による調整後、カスタムリソースが再作成されます。

手順

  • OpenShift で KafkaTopic リソースを削除します。

    oc delete を使用してこれを行うことができます。

    oc delete kafkatopic your-topic-name

その他のリソース

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.