kubernetes - 如何处理 kubernetes 中 kafka 和 zookeeper 的故障场景
问题描述
我有运行在 server1、server2 和 server3 上的 zookeeper 设置,同样 kafka 也在 server1、server2 和 server3 上运行。
安装程序在 Kubernetes 中运行。
问题陈述:
万一一个zookeeper设置失败,整个设置都会失败,因为kafka依赖于zookeeper。我对吗?
如果 Q1 正确 - 是否有任何方法可以进行设置,例如如果一个 zookeeper 服务器将关闭,那么 kafka 应该按原样运行?
如何在 kubernetes 设置中公开 kafka 端口?
在生产服务器的 Kubernetes 中持久保存数据的推荐方法是什么?
解决方案
我看不到 Zookeeper 的问题与 k8s 有什么关系……但是您绝对应该设置关联规则,使 Zookeeper 和 Kafka 不在同一个物理服务器上或共享同一个磁盘
如果三分之三的 Zookeeper 出现故障,您最终会出现脑裂事件,因为没有一个 Zookeeper 知道应该由哪个负责领导。这实际上会导致 Kafka 崩溃或损坏,是的。
为了降低这种风险,您可以选择运行 5 个 Zookeeper,在这种情况下,您最多可以失去 3 个服务器以达到相同的状态。权威指南书的前几章涵盖了这些概念
关于其他问题 - 一般而言,NodePorts 和 PVCs。
使用 Github 上流行的 Kafka 运算符之一,您无需考虑设置这些属性
您仍然必须在任何安装中手动执行 Kafka 管理任务...如果您想减少工作量,您可以使用 Cruise Control 等额外服务,不过
推荐阅读
- javascript - 从 reddit api 获取 api 誓言访问令牌
- python - 如何用颜色进行线性插值?
- python - 数据框 pyspark 从前一行更新行
- algorithm - 使 BITWISE AND 积极
- node.js - 如何测试 jest + sequelize?
- python - 命中KeyboardInterrupt子进程时如何将最后一个输出保存在变量中
- node.js - 带有集合 {merge} 的 Firestore 安全规则
- c++ - 使用 C++ 的条件
- regex - 使用正则表达式连接火花中的两个数据帧
- javascript - 将 React 应用程序部署到生产环境返回“您需要启用 JavaScript 才能运行此应用程序”