OpenEBS 突然出现 Pod 无法挂载的情况,检查 ctrl 和所有 rep 的日志,出现:Registeration Failed , UUID is nil 等错误。

排查后发现,是因为 jiva 的镜像版本不一致。

虽然 ctrl 和 rep 指定的镜像都是 openebs/jiva:ci,但这个镜像是会升级的。在官方镜像升级后,如果集群中 ctrl Pod 迁移到了新机器,那其在新机器上拉取的会是最新的镜像,导致与原有 rep 机器上的镜像不一致,故无法连接,磁盘失效。

解决方法:

  1. 在所有机器上升级 openebs/jiva:ci 镜像(ansible 示例):ansible nodes -m shell -a "sudo docker pull openebs/jiva:ci"
  2. 删掉重启 ctrl 和 rep 等相关 Pod(注意是删掉 Pod,不是 Deployment,Pod 将自动重新创建)