25.4. 다운타임을 최소화하여 OpenShift 업그레이드
OpenShift를 업그레이드하는 경우 OpenShift 업그레이드 설명서를 참조하여 업그레이드 경로와 노드를 올바르게 업그레이드하는 단계를 확인하십시오. OpenShift를 업그레이드하기 전에 Apache Kafka용 Streams 버전에 대해 지원되는 버전을 확인합니다.
업그레이드를 수행할 때 다음 단계를 수행하여 Kafka 클러스터의 가용성을 확인하십시오.
- Pod 중단 예산 구성
다음 방법 중 하나를 사용하여 롤링 Pod
- Apache Kafka Drain cleaner용 Streams 사용 (권장 권장)
- Pod에 주석을 적용하여 수동으로 롤아웃
Kafka가 계속 작동하려면 고가용성을 위해 주제를 복제해야 합니다. 이를 위해서는 복제 요소보다 3개 이상의 복제 요소와 최소 개수의 in-sync 복제본 수를 1로 지정하는 주제 구성이 필요합니다.
고가용성을 위해 Kafka 주제 복제
고가용성 환경에서 Cluster Operator는 업그레이드 프로세스 중에 다운타임이 없도록 최소한의 in-sync 복제본을 유지 관리합니다.
25.4.1. Drain cleaner를 사용하여 롤링 Pod 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift 업그레이드 중에 노드를 제거하기 위해 Streams for Apache Kafka DrainCleaner를 사용하면 Pod에 수동 롤링 업데이트 주석이 추가되어 Cluster Operator에 제거되어야 하는 Pod의 롤링 업데이트를 수행하고 업그레이드 중인 OpenShift 노드에서 이동하도록 알립니다.
자세한 내용은 23장. Apache Kafka DrainCleaner용 Streams를 사용하여 Pod 제거의 내용을 참조하십시오.
25.4.2. 롤링 Pod 수동 (클린더를 Drain cleaner로) 링크 복사링크가 클립보드에 복사되었습니다!
DrainCleaner를 사용하여 Pod를 롤오버하는 대신 Cluster Operator를 통해 Pod의 수동 롤링 업데이트를 트리거할 수 있습니다. Pod 리소스를 사용하여 롤링 업데이트는 새 Pod를 사용하여 리소스의 Pod를 다시 시작합니다. 주제를 계속 사용하여 Drain cleaner의 작업을 복제하려면 Pod 중단 예산에 대해 maxUnavailable 값을 0으로 설정해야 합니다. Pod 중단 예산을 0으로 줄이면 OpenShift에서 포드를 자동으로 제거하지 못합니다.
Pod 중단 예산 지정
드레인해야 하는 Pod를 확인해야 합니다. 그런 다음 Pod 주석을 추가하여 업데이트합니다.
여기에서 주석은 my-cluster-pool-a-1 이라는 Kafka Pod를 업데이트합니다.
Kafka Pod에서 수동 롤링 업데이트 수행
oc annotate pod my-cluster-pool-a-1 strimzi.io/manual-rolling-update="true"
oc annotate pod my-cluster-pool-a-1 strimzi.io/manual-rolling-update="true"