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
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 资源名称的主题。如果要管理这些主题,则必须使用不同的 .metadata.name 创建 KafkaTopic 资源,如上例中所示。

注意

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat