Rancher 中 RethinkDB 集群节点无法启动故障排除

这篇文章(5a0fe53a4da5ce0928d5f28d)是从 Teambition 迁移过来的

故障描述

  • 之前 RethinkDB 按照 1 + 3 的模式集群部署成功,每个节点分别部署在不同的 host 上。由于某种未知原因,其中一台 host 在 Rancher 中失联,在连接恢复后该 host 上的 RethinkDB 就一直无法正常启动。

解决过程

  • 首先检查了 RethinkDB 节点的日志,发现一切正常,但 Rancher UI 上的状态却一直显示不正常
  • 在 RethinkDB 管理界面上有一瞬间看到了第三个节点加入,然后忽然又没了,推断该节点容器在被 Rancher 一直重启
  • 检查 Rancher 基础服务,发现 Rancher/HealthCheck 处于不正常状态,尝试重启、删除都没有成功。
  • 远程进入容器所在主机,用 docker 命令 kill,竟然没用 🤷‍♂️
  • Rancher 中停止主机,再删,还是没有用 🤷‍♀️
  • 要不重启主机?等下…… 还是先试试重启 docker 吧…

解决方案

  • 重启 Docker sudo systemctl restart docker

成功👌,Rancher 会帮我们把余下的事情做掉,所有的容器不出意外都会自动起来(事实上的确没出意外)。来再检查一下,HealthCheck ✅, RethinkDB ✅,搞定!

等下……

为什么 RethinkDB 管理界面中始终还是两个节点,查看刚刚启动的 RethinkDB 的容器日志,显示已经成功加入集群,连接了另外两个节点 ,WHY ?!

尝试重启该 RethinkDB 节点,还是一样 🤦‍♂️

这时候我们需要……冷静

我们的集群是用 RethinkDB 的 proxy 节点去接入集群的,会不会……重启 RethinkDB Proxy ……搞定 🚀!