27.9. 使用注解启动 Kafka 和 ZooKeeper 集群的滚动更新
AMQ Streams 支持使用资源上的注解来通过 Cluster Operator 手动触发 Kafka 和 ZooKeeper 集群的滚动更新。滚动更新使用新的资源重启 pod。
在特殊 pod 或一组 pod 上手动执行滚动更新,通常只需要在特殊情况下进行滚动更新。但是,如果您通过 Cluster Operator 执行滚动更新,而不是直接删除 pod,请确保以下内容:
- 手动删除 pod 不会与 Cluster Operator 操作冲突,如同时删除其他 pod。
- Cluster Operator 逻辑处理 Kafka 配置规格,如同步副本数。
27.9.1. 使用 pod 管理注解执行滚动更新
					此流程描述了如何触发 Kafka 集群或 ZooKeeper 集群的滚动更新。要触发更新,您可以在 StrimziPodSet 中添加注解,用于管理集群中运行的 pod。
				
先决条件
要执行手动滚动更新,您需要运行一个正在运行的 Cluster Operator 和 Kafka 集群。
流程
- 查找控制您要手动更新的 Kafka 或 ZooKeeper pod 的资源名称。 - 例如,如果您的 Kafka 集群命名为 my-cluster,则对应的名称为 my-cluster-kafka 和 my-cluster-zookeeper。 
- 使用 - oc annotate在 OpenShift 中注解适当的资源。- Annotating a StrimziPodSet - oc annotate strimzipodset <cluster_name>-kafka strimzi.io/manual-rolling-update=true oc annotate strimzipodset <cluster_name>-zookeeper strimzi.io/manual-rolling-update=true - oc annotate strimzipodset <cluster_name>-kafka strimzi.io/manual-rolling-update=true oc annotate strimzipodset <cluster_name>-zookeeper strimzi.io/manual-rolling-update=true- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 等待下一个协调发生(默认为两分钟)。触发注解资源中的所有 pod 的滚动更新,只要协调过程检测到注解。当所有 pod 的滚动更新完成后,注解会从资源中删除。
27.9.2. 使用 pod 注解执行滚动更新
					此流程描述了如何使用 OpenShift Pod 注解手动触发现有 Kafka 集群或 ZooKeeper 集群的滚动更新。当注解多个 pod 时,连续滚动更新会在同一协调运行中执行。
				
先决条件
要执行手动滚动更新,您需要运行一个正在运行的 Cluster Operator 和 Kafka 集群。
无论使用了什么主题复制因素,您可以在 Kafka 集群上执行滚动更新。但是,对于 Kafka 在更新过程中保持操作,您需要执行以下操作:
- 使用您要更新的节点运行的高可用性 Kafka 集群部署。
- 复制的主题以实现高可用性。 - 主题配置指定至少 3 个复制因素,最小同步副本的数量为复制因素的数量减 1。 - 为高可用性复制 Kafka 主题 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
流程
- 找到您要手动更新的 Kafka 或 ZooKeeper - Pod的名称。- 例如,如果您的 Kafka 集群命名为 my-cluster,则对应的 - Pod名称为 my-cluster-kafka-index 和 my-cluster-zookeeper-index。索引 从零开始,结束于副本总数。
- 在 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 - 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- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
							等待下一个协调发生(默认为两分钟)。当在协调过程检测到注解时,就会触发被注解的 Pod的滚动更新。完成 Pod 的滚动更新后,注解将从Pod中删除。