Confluent Kafka Helm Chart – 解决 Broker 容器无法与 Zookeeper 通信的问题

119次阅读
没有评论

问题描述

在使用 Confluent Kafka Helm Chart 在多个集群上运行时,偶尔会遇到 Broker 容器在一段时间后失败,并且无法自行恢复。Broker 容器中通常会出现以下错误信息:

[main-SendThread(confluent-{env}-cp-zookeeper-headless:{port})] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server confluent-{env}-cp-zookeeper-headless/{ip:port}. Will not attempt to authenticate using SASL (unknown error)[main] ERROR io.confluent.admin.utils.ClusterStatus - Timed out waiting for connection to Zookeeper server [confluent-{env}-cp-zookeeper-headless:{port}.

是否有人遇到类似问题,并且是否有指导如何自动处理或修复这种行为的方法?我唯一理解的是 Zookeeper 由于某种原因不可响应,但 Zookeeper 容器正常运行,而 Broker 容器则失败。在其中一个 Zookeeper 容器中,我看到以下日志:

[2020-06-15 13:02:18,902] WARN Connection broken for id 2, my id = 2, error =  (org.apache.zookeeper.server.quorum.QuorumCnxManager)[2020-06-15 13:03:07,010] WARN Connection broken for id 2, my id = 2, error =  (org.apache.zookeeper.server.quorum.QuorumCnxManager)[2020-06-15 13:03:07,010] WARN Connection broken for id 1, my id = 2, error =  (org.apache.zookeeper.server.quorum.QuorumCnxManager)[2020-06-15 13:03:08,244] ERROR Unhandled scenario for peer sid: 3 fall back to use snapshot (org.apache.zookeeper.server.quorum.LearnerHandler)

我们正在使用 Kubernetes 版本 1.14.3,运行的 Confluent Chart 版本为 cp-helm-charts-0.4.1。
我的假设是,任何中断后,两侧之间的连接丢失且没有处理来重新连接?

解决方案

请注意以下操作可能存在版本差异,且操作前请做好备份。

解决方案1:检查 Zookeeper 与 Broker 之间的网络连接

  1. 确保 Zookeeper 服务在正常运行,并且其服务端口正常开放。
  2. 验证 Broker 容器的网络设置是否正确,能够访问 Zookeeper 服务的地址和端口。

解决方案2:升级 Confluent Helm Chart 版本

根据您提供的信息,存在一个相关的 GitHub 问题链接(链接)。这可能是一个已知的问题,可能已在后续版本中得到修复。尝试升级 Confluent Helm Chart 到最新版本,并查看问题是否得到解决。

解决方案3:监控和自动恢复

考虑使用监控工具,例如 Prometheus 和 Grafana,来监控 Kafka 和 Zookeeper 容器的健康状态。在检测到异常情况时,您可以设置自动化恢复机制,例如自动重启容器或执行其他必要的操作。

解决方案4:检查 Kubernetes 版本兼容性

确认您正在使用的 Confluent Helm Chart 版本与 Kubernetes 版本兼容。在某些情况下,特定版本的 Helm Chart 可能不兼容某些 Kubernetes 版本,导致异常行为。

解决方案5:调整 Zookeeper 配置

如果 Zookeeper 容器出现连接问题,您可能需要调整其配置参数。查看 Zookeeper 的配置文件,并确保配置参数正确设置,以适应您的环境。

解决方案6:参考社区讨论和文档

在 Confluent 社区中寻求帮助,查看是否有其他用户遇到类似问题,并且是否有相应的解决方案或建议。您还可以查阅 Confluent 官方文档,了解有关配置和故障排除的更多信息。

请根据您的情况选择适合的解决方案,并确保在执行操作之前仔细阅读相关文档和社区讨论。

正文完