【问题标题】:GKE Upgrade Causing Kafka to become UnavailableGKE升级导致Kafka不可用
【发布时间】:2023-01-03 16:17:42
【问题描述】:
我有一个托管在 GKE 中的 Kafka 集群。 Google 每周更新 GKE 节点,每当发生这种情况时,Kafka 就会暂时不可用,这会导致大量错误/重新平衡以使其备份到健康状态。目前,一旦升级完成且集群可用,我们依靠 K8 重试最终成功。有没有办法在 Kafka 中优雅地处理这种情况,或者尽可能避免这种情况?
【问题讨论】:
标签:
kubernetes
google-cloud-platform
apache-kafka
google-kubernetes-engine
【解决方案1】:
为了能够更好地通知您,您必须向我们提供更多信息,您的设置是什么? Kube 和 Kafka 的版本?有多少个 Kafka 和 ZK pod?您如何部署 Kafka 集群(通过简单的 helm chart 或操作员?)升级 kube 集群时看到的确切症状是什么?你得到什么错误? Kafka集群等状态如何?你如何监控它?
但这里有一些值得研究的要点。
- 您是否在节点/区域中正确分布了 Kafka/ZK pod?
- 您是否将 PDB 设置为合理的 maxUnavailable 设置?
- 您的 Kafka/ZK pod 的就绪/活性探测是什么?
- 您的主题是否正确复制?
我强烈建议您查看https://strimzi.io/,如果您想在 Kube 上运行 Kafka,这将非常有帮助。它是开源运营商并且有据可查。
【解决方案2】:
您可以通过“升级维护窗口”控制 GKE 节点的自动升级,以决定何时进行升级。根据您的业务重要性,您可以配置此选项以及 K8 重试功能。