29.2. Pod 주석을 사용하여 롤링 업데이트 수행
다음 절차에서는 OpenShift Pod 주석을 사용하여 기존 Kafka, Kafka Connect 또는 MirrorMaker 2 클러스터의 롤링 업데이트를 수동으로 트리거하는 방법을 설명합니다. 여러 Pod에 주석이 있으면 동일한 조정 실행 내에서 연속 롤링 업데이트가 수행됩니다.
사전 요구 사항
수동 롤링 업데이트를 수행하려면 실행 중인 Cluster Operator가 필요합니다. Kafka, Kafka Connect 또는 MirrorMaker 2와 관계없이 업데이트 중인 구성 요소의 클러스터도 실행 중이어야 합니다.
사용된 주제 복제 요인에 관계없이 Kafka 클러스터에서 롤링 업데이트를 수행할 수 있습니다. 그러나 Kafka가 업데이트 중에 작동하려면 다음이 필요합니다.
- 업데이트하려는 노드에서 실행되는 고가용성 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 # ...
프로세스
수동으로 업데이트할
Pod이름을 찾습니다.Pod 이름 지정 규칙은 다음과 같습니다.
-
Kafka 클러스터의 <CLUSTER_NAME>-kafka-<index_number> -
Kafka Connect
클러스터의 <CLUSTER_NAME>-connect-<index_number> -
<cluster_name>-mirrormaker2-<index_number>for a MirrorMaker 2 cluster
Pod에 할당된 <
index_number>는 0에서 시작하여 총 복제본 수에서 1을 뺀 값입니다.-
oc annotate를 사용하여 OpenShift에서Pod리소스에 주석을 답니다.oc annotate pod <cluster_name>-kafka-<index_number> strimzi.io/manual-rolling-update="true" oc annotate pod <cluster_name>-connect-<index_number> strimzi.io/manual-rolling-update="true" oc annotate pod <cluster_name>-mirrormaker2-<index_number> strimzi.io/manual-rolling-update="true"-
다음 조정이 발생할 때까지 기다립니다(기본적으로 2분마다). 조정 프로세스에서 주석이 감지된 한 주석이 주석에 감지되면 주석이 주석의 롤링 업데이트가 트리거됩니다.
Pod의 롤링 업데이트가 완료되면Pod에서 주석이 자동으로 제거됩니다.
클러스터의 수동 롤링 업데이트가 실패하더라도 조정이 계속됩니다. 이를 통해 Cluster Operator는 나중에 조정에서 해결할 수 있는 특정 수정 가능한 상황에서 복구할 수 있습니다. 예를 들어 누락된 PVC(영구 볼륨 클레임) 또는 PV(영구 볼륨)를 다시 생성하여 업데이트가 실패했습니다.