13.4.3. Pod アノテーションを使用したローリングアップデートの実行
この手順では、OpenShift Pod アノテーションを使用して、既存の Kafka クラスターまたは ZooKeeper クラスターのローリングアップデートを手動でトリガーする方法を説明します。同じ StatefulSet の複数の Pod にアノテーションが付けられると、連続したローリングアップデートは同じ調整実行内で実行されます。
前提条件
使用するトピックレプリケーション係数に関係なく、Kafka クラスターでローリングアップデートを実行できます。ただし、更新中 Kafka は引き続き稼働しているようにするには、以下が必要になります。
- 更新するノードで実行している高可用性 Kafka クラスターデプロイメント。
高可用性のためにレプリケートされたトピック。
トピック設定は、3 以上のレプリケーション係数を指定し、最小数の In-Sync レプリカをレプリケーション係数より 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 # ...
手順
手動で更新する Kafka または ZooKeeper
Podの名前を見つけます。たとえば、Kafka クラスターの名前が my-cluster の場合、対応する
Pod名は my-cluster-kafka-index と my-cluster-zookeeper-index になります。インデックスは ゼロで始まり、レプリカの合計数から 1 を引いた値になります。OpenShift で
Podリソースにアノテーションを付けます。oc annotateを使用します。oc annotate pod cluster-name-kafka-index strimzi.io/manual-rolling-update=true oc annotate pod cluster-name-zookeeper-index strimzi.io/manual-rolling-update=true-
次の調整が発生するまで待ちます (デフォルトでは 2 分ごとです)。アノテーションが調整プロセスで検出されれば、アノテーションが付けられた
Podのローリングアップデートがトリガーされます。Pod のローリングアップデートが完了すると、アノテーションはPodから削除されます。