9.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
Copy to Clipboard Toggle word wrap

该标签提供 Kafka 资源的集群名称。主题 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

  # ...
Copy to Clipboard Toggle word wrap

1
在 OpenShift 中工作的有效主题名称。
2
使用大写和句点的 Kafka 主题名称,在 OpenShift 中无效。

如果多个 KafkaTopic 资源引用同一 Kafka 主题,则首先创建的资源被视为管理该主题的资源。更新较新的资源的状态以指示冲突,并且它们的 Ready 状态更改为 False

如果 Kafka 客户端应用程序(如 Kafka Streams)自动创建带有无效 OpenShift 资源名称的主题,则主题 Operator 会在双向模式中使用时生成一个有效的 metadata.name。它替换无效字符,并将哈希附加到名称中。但是,此行为不适用于(预览)单向模式。

替换无效主题名称的示例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: my-topic---c55e57fe2546a33f9e603caf57165db4072e827e
  # ...
Copy to Clipboard Toggle word wrap

注意

如需有关集群中标识符和名称要求的更多信息,请参阅 OpenShift 文档 对象名称和 ID

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat