9.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개의 복제본으로 주제를 생성하는 방법을 설명합니다.
절차는 주제 관리의 양방향 및 (preview) 모드에 대해 동일합니다.
사전 준비 사항
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(default)를 삭제합니다.
절차
KafkaTopic리소스를 구성합니다.Kafka 주제 구성의 예
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: name: my-topic-1 labels: strimzi.io/cluster: my-cluster spec: partitions: 10 replicas: 2작은 정보주제를 수정할 때
oc get kafkatopic my-topic-1 -o yaml을 사용하여 현재 버전의 리소스를 가져올 수 있습니다.OpenShift에서
KafkaTopic리소스를 생성합니다.oc apply -f <topic_config_file>주제의 준비 상태가
True로 변경될 때까지 기다립니다.oc get kafkatopics -o wide -w -n <namespace>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 TrueREADY출력에True가 표시되면 주제 생성에 성공합니다.READY열이 비어 있으면 리소스 YAML 또는 Topic Operator 로그에서 상태에 대한 자세한 정보를 가져옵니다.상태 메시지는 현재 상태의 이유에 대한 세부 정보를 제공합니다.
oc get kafkatopics my-topic-2 -o yamlNotReady상태가 있는 항목에 대한 세부 정보# ... status: conditions: - lastTransitionTime: "2022-06-13T10:14:43.351550Z" message: Number of partitions cannot be decreased reason: PartitionDecreaseException status: "True" type: NotReady이 예에서 주제가 준비되지 않은 이유는
KafkaTopic구성에서 원래 파티션 수가 감소했기 때문입니다. Kafka는 이를 지원하지 않습니다.주제 구성을 재설정하면 상태에 주제가 준비되었음이 표시됩니다.
oc get kafkatopics my-topic-2 -o wide -w -n <namespace>주제의 상태 업데이트
NAME CLUSTER PARTITIONS REPLICATION FACTOR READY my-topic-2 my-cluster 10 3 True세부 정보 가져오기에 메시지가 표시되지 않음
oc get kafkatopics my-topic-2 -o yamlREADY상태가 있는 항목에 대한 세부 정보# ... status: conditions: - lastTransitionTime: '2022-06-13T10:15:03.761084Z' status: 'True' type: Ready