9.3. 다운타임을 최소화하여 OpenShift 업그레이드


OpenShift를 업그레이드하는 경우 OpenShift 업그레이드 설명서를 참조하여 업그레이드 경로와 노드를 올바르게 업그레이드하는 단계를 확인합니다. OpenShift를 업그레이드하기 전에 사용 중인 AMQ Streams 버전에 지원되는 버전을 확인하십시오.

업그레이드를 수행할 때 Kafka 클러스터를 계속 사용할 수 있어야 합니다.

다음 전략 중 하나를 사용할 수 있습니다.

  1. Pod 중단 예산 구성
  2. 다음 방법 중 하나로 Pod를 롤링합니다.

    1. AMQ Streams Drain cleaner 사용
    2. Pod에 주석을 수동으로 적용하여

Pod를 롤오버하는 방법 중 하나를 사용하기 전에 Pod 중단 예산을 구성해야 합니다.

Kafka가 작동 상태를 유지하려면 고가용성을 위해 주제도 복제해야 합니다. 이를 위해 최소 3개의 복제 요소와 최소 동기화 복제본 수를 복제 요인보다 작은 1개로 지정하는 주제 구성이 필요합니다.

고가용성을 위해 복제된 Kafka 주제

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: my-topic
  labels:
    strimzi.io/cluster: my-cluster
spec:
  partitions: 1
  replicas: 3
  config:
    # ...
    min.insync.replicas: 2
    # ...
Copy to Clipboard Toggle word wrap

고가용성 환경에서 Cluster Operator는 다운타임이 발생하지 않도록 업그레이드 프로세스 중 항목에 대해 최소 수의 동기화 복제본을 유지 관리합니다.

9.3.1. AMQ Streams Drain cleaner를 사용하여 Pod 롤링

AMQ Streams DrainCleaner 툴을 사용하여 업그레이드 중에 노드를 제거할 수 있습니다. AMQ Streams DrainCleaner는 롤링 업데이트 Pod 주석으로 Pod에 주석을 답니다. 그러면 제거된 Pod의 롤링 업데이트를 수행하도록 Cluster Operator에 알립니다.

Pod 중단 예산을 사용하면 지정된 시간에 지정된 수의 Pod만 사용할 수 없습니다. Kafka 브로커 Pod의 계획된 유지 관리 기간 동안 Pod 중단 예산은 Kafka가 고가용성 환경에서 계속 실행되도록 합니다.

Kafka 구성 요소에 대한 템플릿 사용자 지정을 사용하여 Pod 중단 예산을 지정합니다. 기본적으로 Pod 중단 예산을 사용하면 지정된 시간에 단일 Pod만 사용할 수 없습니다.

이렇게 하려면 maxUnavailable0 (zero)으로 설정합니다. 최대 Pod 중단 예산을 0으로 줄이면 자발적으로 중단되는 것이 방지되므로 Pod를 수동으로 제거해야 합니다.

Pod 중단 예산 지정

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  namespace: myproject
spec:
  kafka:
    # ...
    template:
      podDisruptionBudget:
        maxUnavailable: 0
# ...
Copy to Clipboard Toggle word wrap

9.3.2. 주제를 사용 가능한 상태로 유지하면서 Pod 수동 롤링

업그레이드하는 동안 Cluster Operator를 통해 Pod 수동 롤링 업데이트를 트리거할 수 있습니다. Pod 리소스를 사용하여 롤링 업데이트를 통해 새 Pod로 리소스의 Pod를 재시작합니다. AMQ Streams DrainCleaner를 사용하는 것과 마찬가지로 Pod 중단 예산에 대해 maxUnavailable 값을 0으로 설정해야 합니다.

드레인해야 하는 Pod를 확인해야 합니다. 그런 다음 Pod 주석을 추가하여 업데이트합니다.

여기에서 주석은 Kafka 브로커를 업데이트합니다.

Kafka 브로커 Pod에서 수동 롤링 업데이트 수행

oc annotate pod <cluster_name>-kafka-<index> strimzi.io/manual-rolling-update=true
Copy to Clipboard Toggle word wrap

&lt ;cluster_name& gt;을 클러스터 이름으로 교체합니다. Kafka 브로커 Pod의 이름은 < cluster-name> -kafka- <index >입니다. 여기서 < index >는 0에서 시작하여 총 복제본 수에서 1을 뺀 값입니다. 예: my-cluster-kafka-0.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동