23.3. 使用 Apache Kafka Drain Cleaner 的 Streams


将 Apache Kafka Drain Cleaner 的 Streams 与 Cluster Operator 搭配使用,将 Kafka 代理或 ZooKeeper pod 从正在排空的节点中移出。当您运行 Apache Kafka Drain Cleaner 的 Streams 时,它会使用滚动更新 pod 注解来注解 pod。Cluster Operator 根据注解执行滚动更新。

使用反关联性配置时的注意事项

在 Kafka 或 ZooKeeper pod 中使用 反关联性 时,请考虑在集群中添加备用 worker 节点。包含备用节点可确保集群在节点排空或其他节点临时不可用期间重新调度 pod。当 worker 节点排空并反关联性规则限制备用节点上的 pod 重新调度时,备用节点有助于防止重启 pod 变得不可调度。这可减少排空操作失败的问题。

流程

  1. 排空托管 Kafka 代理或 ZooKeeper pod 的指定 OpenShift 节点。

    oc get nodes
    oc drain <name-of-node> --delete-emptydir-data --ignore-daemonsets --timeout=6000s --force
  2. 检查流中的 Apache Kafka Drain Cleaner 日志中的驱除事件,以验证 pod 是否已注解用于重启。

    Apache Kafka Drain Cleaner 日志的流显示 pod 的注解

    INFO ... Received eviction webhook for Pod my-cluster-zookeeper-2 in namespace my-project
    INFO ... Pod my-cluster-zookeeper-2 in namespace my-project will be annotated for restart
    INFO ... Pod my-cluster-zookeeper-2 in namespace my-project found and annotated for restart
    
    INFO ... Received eviction webhook for Pod my-cluster-kafka-0 in namespace my-project
    INFO ... Pod my-cluster-kafka-0 in namespace my-project will be annotated for restart
    INFO ... Pod my-cluster-kafka-0 in namespace my-project found and annotated for restart

  3. 检查 Cluster Operator 日志中的协调事件,以验证滚动更新。

    Cluster Operator 日志显示滚动更新

    INFO  PodOperator:68 - Reconciliation #13(timer) Kafka(my-project/my-cluster): Rolling Pod my-cluster-zookeeper-2
    INFO  PodOperator:68 - Reconciliation #13(timer) Kafka(my-project/my-cluster): Rolling Pod my-cluster-kafka-0
    INFO  AbstractOperator:500 - Reconciliation #13(timer) Kafka(my-project/my-cluster): reconciled

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部