9.3. 다운타임을 최소화하여 OpenShift 업그레이드
OpenShift를 업그레이드하는 경우 OpenShift 업그레이드 설명서를 참조하여 업그레이드 경로와 노드를 올바르게 업그레이드하는 단계를 확인합니다. OpenShift를 업그레이드하기 전에 사용 중인 AMQ Streams 버전에 지원되는 버전을 확인하십시오.
업그레이드를 수행할 때 Kafka 클러스터를 계속 사용할 수 있어야 합니다.
다음 전략 중 하나를 사용할 수 있습니다.
- Pod 중단 예산 구성
다음 방법 중 하나로 Pod를 롤링합니다.
- AMQ Streams Drain cleaner 사용
- Pod에 주석을 수동으로 적용하여
Pod를 롤오버하는 방법 중 하나를 사용하기 전에 Pod 중단 예산을 구성해야 합니다.
Kafka가 작동 상태를 유지하려면 고가용성을 위해 주제도 복제해야 합니다. 이를 위해 최소 3개의 복제 요소와 최소 동기화 복제본 수를 복제 요인보다 작은 1개로 지정하는 주제 구성이 필요합니다.
고가용성을 위해 복제된 Kafka 주제
고가용성 환경에서 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만 사용할 수 없습니다.
이렇게 하려면 maxUnavailable 을 0 (zero)으로 설정합니다. 최대 Pod 중단 예산을 0으로 줄이면 자발적으로 중단되는 것이 방지되므로 Pod를 수동으로 제거해야 합니다.
Pod 중단 예산 지정
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
oc annotate pod <cluster_name>-kafka-<index> strimzi.io/manual-rolling-update=true
< ;cluster_name& gt;을 클러스터 이름으로 교체합니다. Kafka 브로커 Pod의 이름은 < cluster-name> -kafka- <index >입니다. 여기서 < index >는 0에서 시작하여 총 복제본 수에서 1을 뺀 값입니다. 예: my-cluster-kafka-0.