10.4. Kafka トピックの設定
KafkaTopic
リソースのプロパティーを使用して、Kafka トピックを設定します。KafkaTopic
内のトピック設定に加えられた変更は、Kafka に伝播されます。
oc apply
を使用すると、トピックを作成または編集できます。oc delete
を使用すると、既存のトピックを削除できます。
以下に例を示します。
-
oc apply -f <topic_config_file>
-
oc delete KafkaTopic <topic_name>
トピックを削除できるようにするには、Kafka リソースの spec.kafka.config
で delete.topic.enable
を true
(デフォルト) に設定する必要があります。
この手順では、10 個のパーティションと 2 つのレプリカがあるトピックを作成する方法を説明します。
手順は、トピック管理の一方向モードと双方向モードで同じです。
作業を開始する前に
KafkaTopic リソースでは、次の変更は許可されません。
-
spec.topicName
で定義されたトピックの名前を変更します。spec.topicName
とstatus.topicName
の不一致が検出されます。 -
spec.partitions
を使用してパーティションの数を減らす (Kafka ではサポートされていません)。 -
spec.replicas
で指定されたレプリカの数を変更します。
キーを持つトピックの spec.partitions
を増やすと、レコードのパーティション分割が変更され、特にトピックでセマンティックパーティション分割が使用されている場合に問題が発生する可能性があります。
前提条件
- mTLS 認証と TLS 暗号化を使用する Kafka ブローカーリスナーで設定された実行中の Kafka クラスター。
- 実行中の Topic Operator (通常は、Entity Operator とともにデプロイされます)。
-
トピックを削除する場合は、
Kafka
リソースのspec.kafka.config
がdelete.topic.enable=true
(デフォルト) である必要があります。
手順
KafkaTopic
リソースを設定します。Kafka トピックの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントトピックを変更する場合、
oc get kafkatopic my-topic-1 -o yaml
を使用してリソースの現在のバージョンを取得できます。OpenShift で
KafkaTopic
リソースを作成します。oc apply -f <topic_config_file>
oc apply -f <topic_config_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トピックの準備完了ステータスが
True
に変わるまで待ちます。oc get kafkatopics -o wide -w -n <namespace>
oc get kafkatopics -o wide -w -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka トピックのステータス
NAME CLUSTER PARTITIONS REPLICATION FACTOR READY my-topic-1 my-cluster 10 3 True my-topic-2 my-cluster 10 3 my-topic-3 my-cluster 10 3 True
NAME CLUSTER PARTITIONS REPLICATION FACTOR READY my-topic-1 my-cluster 10 3 True my-topic-2 my-cluster 10 3 my-topic-3 my-cluster 10 3 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow READY
出力がTrue
を示す場合、トピックの作成は成功です。READY
列が空白のままの場合は、リソース YAML または Topic Operator ログからステータスの詳細を取得してください。ステータスメッセージには、現在のステータスの理由の詳細が示されます。
oc get kafkatopics my-topic-2 -o yaml
oc get kafkatopics my-topic-2 -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotReady
ステータスのトピックの詳細Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、トピックの準備ができていない理由は、
KafkaTopic
設定で元のパーティション数が減ったためです。Kafka はこれをサポートしていません。トピック設定をリセットした後、ステータスはトピックの準備ができていることを示します。
oc get kafkatopics my-topic-2 -o wide -w -n <namespace>
oc get kafkatopics my-topic-2 -o wide -w -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トピックのステータス更新
NAME CLUSTER PARTITIONS REPLICATION FACTOR READY my-topic-2 my-cluster 10 3 True
NAME CLUSTER PARTITIONS REPLICATION FACTOR READY my-topic-2 my-cluster 10 3 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細のフェッチではメッセージが表示されない
oc get kafkatopics my-topic-2 -o yaml
oc get kafkatopics my-topic-2 -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow READY
ステータスのトピックの詳細Copy to Clipboard Copied! Toggle word wrap Toggle overflow