从运行Cassandra的Kubernetes节点故障中恢复

时间:2018-02-08 21:04:31

标签: cassandra kubernetes

我正在寻找一个好的解决方案来替换在Kubernetes中运行Cassandra的死Kubernetes工作节点。

情景:

  • Cassandra集群由3个pod构建
  • 其中一个Kubernetes工作节点发生故障
  • 替换节点正在加入群集
  • StatefulSet中的新pod已安排在新节点上
  • 当pod IP地址发生变化时,新的pod作为新的Cassandra节点(总共4个节点)可见,并且无法进行自举 死者将被移除。

由于Cassandra作为StatefulSet运行,因此很难跟随official procedure

我发现一个完全hacky的解决方法是使用ConfigMap提供JAVA_OPTS。由于更改ConfigMap(还没有)重新创建pod,您可以按照以下方式操作正在运行的pod:

然而,正如我所提到的那样,那超级黑客。我想知道是否有人在Kubernetes上运行Cassandra并且更好地了解如何应对这种失败?

2 个答案:

答案 0 :(得分:0)

Jetstack导航器支持这一点,但它目前处于alpha:

https://github.com/jetstack/navigator

答案 1 :(得分:0)

  

在移除死者之前无法引导。   这是为什么?   我使用statefulset,我能够杀死一个pod并在

中添加一个新的连接