10.2. トピックの命名規則
KafkaTopic
リソースには、トピックの名前と、そのトピックが属する Kafka クラスターの名前を識別するラベルが含まれます。
トピック処理用の Kafka クラスターの特定
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: name: topic-name-1 labels: strimzi.io/cluster: my-cluster spec: topicName: topic-name-1
ラベルは、Kafka
リソースのクラスター名を指定します。Topic Operator は、管理する KafkaTopic
リソースを決定するメカニズムとしてラベルを使用します。ラベルが Kafka クラスターと一致しない場合、Topic Operator は KafkaTopic
を認識できず、トピックは作成されません。
Kafka と OpenShift には独自の命名検証ルールがあり、Kafka トピック名は OpenShift では有効なリソース名ではない可能性があります。可能であれば、両方に有効な命名規則に従うようにしてください。
次のガイドラインを考慮してください。
- トピックの性質を反映したトピック名を使用
- 名前は簡潔にして 63 文字以内に
- すべて小文字とハイフンを使用
- 特殊文字、スペース、シンボルは避ける
KafkaTopic
リソースを使用すると、metadata.name
フィールドを使用して Kafka トピック名を指定できます。ただし、目的の Kafka トピック名が有効な OpenShift リソース名ではない場合は、spec.topicName
プロパティーを使用して実際の名前を指定できます。spec.topicName
フィールドはオプションであり、これが存在しない場合、Kafka トピック名はデフォルトでトピックの metadata.name
になります。トピックを作成すると、後でトピック名を変更することはできません。
有効な Kafka トピック名を指定する例
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: name: my-topic-1 1 spec: topicName: My.Topic.1 2 # ...
複数の KafkaTopic
リソースが同じ Kafka トピックを参照している場合、最初に作成されたリソースがトピックを管理しているリソースとみなされます。新しいリソースのステータスが更新されて競合が示され、その Ready
ステータスが False
に変更されます。
Kafka Streams などの Kafka クライアントアプリケーションが無効な OpenShift リソース名を持つトピックを自動的に作成する場合、Topic Operator は双方向モードで使用すると有効な metadata.name
を生成します。無効な文字を置換し、名前にハッシュを追加します。ただし、この動作は一方向モードには適用されません。
無効なトピック名を置き換える例
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: name: my-topic---c55e57fe2546a33f9e603caf57165db4072e827e # ...
クラスター内の識別子と名前の要件の詳細は、OpenShift ドキュメントの オブジェクト名と ID を参照してください。