11.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개의 복제본이 있는 주제를 생성하는 방법을 설명합니다.
사전 준비 사항
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(기본값)를 삭제합니다.
프로세스
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