11.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
spec:
topicName: My.Topic.1
# ...
둘 이상의 KafkaTopic 리소스가 동일한 Kafka 주제를 참조하는 경우 먼저 생성된 리소스는 주제를 관리하는 것으로 간주됩니다. 최신 리소스의 상태가 충돌을 나타내도록 업데이트되고 Ready 상태가 False 로 변경됩니다.
Kafka Streams와 같은 Kafka 클라이언트 애플리케이션은 잘못된 OpenShift 리소스 이름으로 주제를 자동으로 생성할 수 있습니다. 이러한 주제를 관리하려면 이전 예와 같이 다른 .metadata.name 을 사용하여 KafkaTopic 리소스를 생성해야 합니다.
클러스터의 식별자 및 이름에 대한 요구 사항에 대한 자세한 내용은 OpenShift 문서 오브젝트 이름 및 ID를 참조하십시오.