【发布时间】:2016-08-09 13:21:53
【问题描述】:
我正在熟悉 Kubernetes,但还没有找到在 Kubernetes 中部署有状态服务的简单解决方案。
- 每个 pod 都必须使用接触点(其他 pod IP 列表)进行引导,这些接触点无法进行负载平衡(我担心运气不好时会出现裂脑:在最坏的情况下,负载平衡器可能会加载- 平衡每个 pod 自身,使一个节点的几个自封闭集群)
- 每个 pod 都必须有持久存储,在最坏的情况下,必须手动访问(例如 consul 的 peers.json)
- 每个 pod 都应该是可重新配置的;如果我忘记对我的领事集群做某事,从头开始重建它只会导致停机。如果 Kubernetes 阻止了这种情况,请随时告诉我,我对部署机制还不够熟悉。
- 使用新配置的实例动态增加服务集群然后耗尽旧的实例可能是非常不受欢迎的(我不是 consul 专家,但从我的角度来看,这会降低 consul 集群中的脑裂保护)。
AFAIK 最适用的就是 Pet Set,不过它还处于 alpha 阶段,只能彻底删除;另外,我觉得我不明白应该如何管理持久卷以在 Pet Set 游戏中生存下来。我想出的另一个选择是将服务部署拆分为 bootstrap-node 部署、bootstrap-node 服务和 all-other-nodes 部署,这允许我使用 bootstrap-node 服务作为联系点(虽然这并不完全安全)。
这种情况下流行的方法是什么,它们有什么优缺点?
【问题讨论】:
-
没有。 K8 还没有为此做好准备。 PetSets 是答案,但还有很长的路要走。
-
我不确定 K8s 是否会为此做好准备。围绕 Kubernetes 的想法是一切都是短暂的。 PetSets 可能提供部分解决方案,但在这种情况下,使用 Kubernetes 并没有任何收获
标签: kubernetes