26.3. Zoo Cryostat를 사용할 때 Kafka 다운그레이드


Zoo Cryostat 모드에서 Kafka를 사용하는 경우 다운그레이드 프로세스에서 Kafka 버전 및 관련 log.message.format.versioninter.broker.protocol.version 속성을 변경해야 합니다.

26.3.1. 다운그레이드에 대한 Kafka 버전 호환성

Kafka 다운그레이드는 호환되는 현재 및 대상 Kafka 버전 및 메시지가 기록된 상태에 따라 달라집니다.

해당 버전에서 해당 클러스터에서 사용된 inter.broker.protocol.version 설정을 지원하지 않거나 최신 log.message.format.version 을 사용하는 메시지 로그에 메시지가 추가된 경우 이전 Kafka 버전으로 되돌릴 수 없습니다.

inter.broker.protocol.version__consumer_offsets 에 기록된 메시지의 스키마와 같이 브로커가 저장한 영구 메타데이터에 사용되는 스키마를 결정합니다. 클러스터에서 이전에 사용된 inter.broker.protocol.version 을 이해하지 못하는 Kafka 버전으로 다운그레이드하는 경우 브로커는 이해할 수 없는 데이터를 접하게 됩니다.

Kafka의 대상 다운그레이드 버전에 해당하는 경우:

  • 현재 버전과 동일한 log.message.format.version, Cluster Operator는 브로커를 단일 롤링 재시작하여 다운그레이드합니다.
  • 다른 log.message.format.version.downgrading은 실행 중인 클러스터에 항상 log.message.format.version 이 downgraded 버전에서 사용하는 버전으로 설정된 경우에만 가능합니다. 일반적으로 log.message.format.version 을 변경하기 전에 업그레이드 절차가 중단된 경우에만 해당합니다. 이 경우 다운그레이드에는 다음이 필요합니다.

    • 두 버전의 interbroker 프로토콜이 다른 경우 브로커의 두 롤링 재시작
    • 동일한 경우 단일 롤링 재시작

새 버전이 log.message.format.version 의 기본값을 사용하는 경우를 포함하여 이전 버전에서 지원하지 않는 log.message.format.version 을 사용한 경우 다운그레이드를 수행할 수 없습니다. 예를 들어 log.message.format.version 이 변경되지 않았기 때문에 Kafka 버전 3.6.0으로 이 리소스를 다운그레이드할 수 있습니다.

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  kafka:
    version: 3.7.0
    config:
      log.message.format.version: "3.6"
      # ...
Copy to Clipboard Toggle word wrap

log.message.format.version"3.7" 로 설정되었거나 값이 없는 경우 다운그레이드를 수행할 수 없으므로 매개 변수가 3.7의 3.7.0 브로커에 기본값을 사용합니다.

중요

Kafka 3.0.0에서 inter.broker.protocol.version3.0 이상으로 설정되면 log.message.format.version 옵션이 무시되고 설정할 필요가 없습니다.

Apache Kafka 클러스터의 Zoo Cryostat 기반 스트림을 이전 버전으로 다운그레이드합니다. Apache Kafka 클러스터용 Zoo Cryostat 기반 Streams를 3.7.0에서 3.6.0으로 이동하는 것과 같은 더 낮은 버전으로 다운그레이드하는 경우 Kafka 클러스터에서 사용하는 비브로커 프로토콜 버전이 다운그레이드하려는 Kafka 버전에서 지원하는 버전인지 확인합니다. 다운그레이드하려는 Kafka 버전에 대한 inter-broker 프로토콜 버전은 다운그레이드 중인 버전보다 높지 않아야 합니다.

참고

Zoo Cryostat 기반 다운그레이드와 관련된 지원 및 제한 사항에 대한 정보는 Apache Kafka 설명서를 참조하십시오.

사전 요구 사항

  • Cluster Operator가 실행 중입니다.
  • Apache Kafka 클러스터의 Streams를 다운그레이드하기 전에 Kafka 리소스에 대해 다음을 확인합니다.

    • 중요: Kafka 버전의 호환성.
    • Kafka 사용자 정의 리소스에는 다운그레이드된 Kafka 버전에서 지원하지 않는 옵션이 포함되어 있지 않습니다.
    • Kafka.spec.kafka.config 에는 로 다운그레이드되는 Kafka 버전에서 지원하는 log.message.format.versioninter.broker.protocol.version 이 있습니다.

      Kafka 3.0.0에서 inter.broker.protocol.version3.0 이상으로 설정되면 log.message.format.version 옵션이 무시되고 설정할 필요가 없습니다.

프로세스

  1. Kafka 클러스터 구성을 업데이트합니다.

    oc edit kafka <kafka_configuration_file>
    Copy to Clipboard Toggle word wrap
  2. inter.broker.protocol.version 버전(및 log.message.format.version )을 다운그레이드하려는 Kafka 버전에서 지원하는 버전으로 변경합니다. Kafka.spec.kafka.version현재 Kafka 버전에서 변경되지 않은 상태로 둡니다.

    예를 들어 Kafka 3.7.0에서 3.6.0으로 다운그레이드하는 경우 다음을 수행합니다.

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      # ...
      kafka:
        version: 3.7.0 
    1
    
        config:
          inter.broker.protocol.version: "3.6" 
    2
    
          log.message.format.version: "3.6"
          # ...
    Copy to Clipboard Toggle word wrap
    1
    Kafka 버전은 변경되지 않습니다.
    2
    broker 프로토콜 버전이 이전 Kafka 버전에서 지원하는 버전으로 변경됩니다.
    참고

    log.message.format.versioninter.broker.protocol.version 의 값은 부동 소수점 숫자로 해석되지 않도록 문자열이어야 합니다.

  3. 편집기를 저장하고 종료한 다음 롤링 업데이트가 완료될 때까지 기다립니다.

    Pod 상태 전환을 확인하여 롤링 업데이트의 진행 상황을 확인합니다.

    oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'
    Copy to Clipboard Toggle word wrap

    롤링 업데이트를 통해 각 pod가 지정된 Kafka 간 프로토콜 버전을 사용하고 있습니다.

  4. Kafka.spec.kafka.version 을 이전 버전으로 변경합니다.

    예를 들어 Kafka 3.7.0에서 3.6.0으로 다운그레이드하는 경우 다음을 수행합니다.

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      # ...
      kafka:
        version: 3.6.0 
    1
    
        config:
          inter.broker.protocol.version: "3.6" 
    2
    
          log.message.format.version: "3.6"
          # ...
    Copy to Clipboard Toggle word wrap
    1
    Kafka 버전이 새 버전으로 변경되었습니다.
    2
    broker 간 프로토콜 버전은 Kafka 버전에서 지원됩니다.
  5. Kafka 버전의 이미지가 Cluster Operator의 STRIMZI_KAFKA_IMAGES 에 정의된 이미지와 다른 경우 Kafka.spec.kafka.image 를 업데이트합니다.

    25.2.3절. “Kafka 버전 및 이미지 매핑”을 참조하십시오.

  6. Cluster Operator가 클러스터를 업데이트할 때까지 기다립니다.

    Kafka 리소스 상태에서 다운그레이드가 성공적으로 완료되었는지 확인할 수 있습니다.

  7. 이전 버전의 클라이언트 바이너리를 사용하도록 모든 클라이언트 애플리케이션(consumers)을 다운그레이드합니다.

    Kafka 클러스터 및 클라이언트는 이제 이전 Kafka 버전을 사용하고 있습니다.

  8. 주제 메타데이터 스토리지에 Zoo Cryostat를 사용하는 1.7 이전의 Apache Kafka용 Streams 버전으로 되돌리는 경우 Kafka 클러스터에서 내부 주제 저장소 주제를 삭제합니다.

    oc run kafka-admin -ti --image=registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 --rm=true --restart=Never -- ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi-topic-operator-kstreams-topic-store-changelog --delete && ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi_store_topic --delete
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat