31.6. Kafka 클러스터 업그레이드


Kafka 클러스터를 지원되는 최신 Kafka 버전 및 KRaft 메타데이터 버전으로 업그레이드합니다.

참고

Kafka 업그레이드 지원에 대한 최신 정보는 Apache Kafka 설명서를 참조하십시오.

사전 요구 사항

  • Cluster Operator가 실행 중입니다.
  • Kafka 클러스터를 업그레이드하기 전에 Kafka 리소스의 속성에 새 Kafka 버전에서 지원되지 않는 구성 옵션이 포함되어 있지 않은지 확인합니다.

프로세스

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

    oc edit kafka <kafka_configuration_file>
  2. 구성된 경우 현재 spec.kafka.metadataVersion 이 업그레이드 중인 Kafka 버전에서 지원하는 버전으로 설정되어 있는지 확인합니다.

    예를 들어 Kafka 버전 3.9.0에서 4.0.0으로 업그레이드하는 경우 현재 버전은 3.9-IV0입니다.

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      kafka:
        replicas: 3
        metadataVersion: 3.9-IV0
        version: 3.9.0
        # ...

    metadataVersion 이 구성되지 않은 경우 다음 단계에서 Kafka 버전으로 업데이트한 후 Apache Kafka의 Streams를 현재 기본값으로 자동으로 업데이트합니다.

    참고

    metadataVersion 의 값은 부동 소수점 숫자로 해석되지 않도록 문자열이어야 합니다.

  3. Kafka.spec.kafka.version 을 변경하여 새 Kafka 버전을 지정하고 metadataVersion 을 현재 Kafka 버전의 기본값으로 둡니다.

    참고

    kafka.version 을 변경하면 클러스터의 모든 브로커가 새 브로커 바이너리를 사용하도록 업그레이드됩니다. 롤링 업그레이드 중에 일부 브로커는 이전 바이너리를 실행하지만 다른 브로커는 이미 새 바이너리로 전환했습니다. 현재 값을 변경하지 않고 metadataVersion 을 유지하면 모든 브로커와 컨트롤러가 호환되는 상태를 유지하고 업그레이드 전체에서 계속 통신할 수 있습니다.

    참고

    Kafka의 마이크로 릴리스만 포함하는 업그레이드의 경우 (예: X.x.0에서 X.x.1로) Kafka.spec.kafka.version 을 수정하지 마십시오. 기존 버전 설정을 유지합니다. Cluster Operator는 kafka.version 필드에 이전 마이너 버전을 계속 표시하더라도 마이크로 릴리스에 업데이트된 Kafka 바이너리를 자동으로 적용합니다.

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

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      kafka:
        replicas: 3
        metadataVersion: 3.9-IV0 
    1
    
        version: 4.0.0 
    2
    
        # ...
    1
    메타데이터 버전이 변경되지 않음
    2
    Kafka 버전이 새 버전으로 변경되었습니다.
  4. Kafka 클러스터의 이미지가 Kafka 사용자 정의 리소스의 Kafka.spec.kafka. image 에 정의된 경우 새 Kafka 버전이 있는 컨테이너 이미지를 가리키도록 이미지를 업데이트합니다.

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

  5. 편집기를 저장하고 종료한 다음 롤링 업데이트가 Kafka 노드를 업그레이드할 때까지 기다립니다.

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

    oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'

    롤링 업데이트를 통해 각 pod가 새 Kafka 버전에 브로커 바이너리를 사용하고 있는지 확인합니다.

  6. 필요한 경우 Kafka Connect 및 MirrorMaker의 버전 속성을 Kafka의 새 버전으로 설정합니다.

    1. Kafka Connect의 경우 KafkaConnect.spec.version 을 업데이트합니다.
    2. MirrorMaker 2의 경우 KafkaMirrorMaker2.spec.version 을 업데이트합니다.

      참고

      수동으로 빌드된 사용자 지정 이미지를 사용하는 경우 해당 이미지를 다시 빌드하여 Apache Kafka 기본 이미지의 최신 스트림으로 최신 이미지인지 확인해야 합니다. 예를 들어 기본 Kafka Connect 이미지에서 컨테이너 이미지를 생성한 경우 최신 기본 이미지 및 빌드 구성을 가리키도록 Dockerfile을 업데이트합니다.

  7. 구성된 경우 새 metadataVersion 버전을 사용하도록 Kafka 리소스를 업데이트합니다. 그렇지 않으면 9단계로 이동합니다.

    예를 들어 Kafka 4.0.0으로 업그레이드하는 경우 다음을 수행합니다.

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      kafka:
        replicas: 3
        metadataVersion: 4.0-IV3
        version: 4.0.0
        # ...
    주의

    다운그레이딩이 가능하지 않을 수 있으므로 metadataVersion 을 변경할 때는 주의하십시오. 새 Kafka 버전의 metadataVersion 이 다운그레이드하려는 Kafka 버전보다 크면 Kafka를 다운그레이드할 수 없습니다. 그러나 이전 버전을 유지 관리할 때 지원 및 호환성에 미치는 잠재적 영향을 이해하십시오.

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

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

클라이언트 애플리케이션 업그레이드

모든 Kafka 클라이언트 애플리케이션이 업그레이드 프로세스의 일부로 새 버전의 클라이언트 바이너리를 사용하도록 업데이트되었는지 확인하고 Kafka 업그레이드와의 호환성을 확인합니다. 필요한 경우 클라이언트 애플리케이션을 관리하는 팀과 조정합니다.

작은 정보

클라이언트가 최신 메시지 형식을 사용하는지 확인하려면 kafka.server:type=BrokerTopicMetrics,name={Produce|Fetch}MessageConversionsPerSec 메트릭을 사용합니다. 메트릭은 최신 메시지 형식을 사용하는 경우 0 을 표시합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동