Harbor 核心服务不可用---故障排除

故障现象:

Harbor 登录时显示:核心服务不可用. image.png

2. 排查思路

  1. 可以通过浏览器打开登录页面,所以判断服务应该是起来了.
  2. 在输入密码后报错,所以判断可能是登录验证时的错误,需要排除密码错误.
  3. 尝试重启Harbor来解除故障,毕竟重启大法可以解决大多数的问题.
  4. 查看/var/log/harbor下的日志检查具体原因.

3. 查找故障原因

3.1 确定用户名密码

vi harbor.yml
复制代码

image.png 这里我们确认了并不是密码错误造成的.

3.2 重启Harbor服务

docker-compose down
docker-compose up -d
复制代码

image.png 故障依旧

3.3 查看Harbor日志

3.3.1 core日志

tail /var/log/harbor/core.log
复制代码

image.png 太棒了,我们得到了关键信息:
Fatal error loading the DB: Invalid argument. Exiting.
那么事情就变得简单了.

4. 解决故障

4.1 故障原因分析

redis提供两种方式进行持久化. 1.是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化) 2.是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。 在redis服务重启的过程中,redis会自动加载dump.rdb文件以恢复上一次的状态,由于rdb文件版本高于redis服务器版本,导致rdb文件读取失败,服务无法启动,删除该文件就能解决这个故障。

4.2 故障排除

删除dump文件并重启Harbor

find / -name dump.rdb
rm -rf /data/harbor/redis/dump.rdb
docker-compose down
docker-compose up -d
复制代码

image.png

5. 恢复正常

image.png


作者:仇沁
链接:https://juejin.cn/post/7108631208653193224
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @   flytoyou  阅读(933)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示