背景
最近服务运行在k8s集群,为了省事儿,也把Harbor以及Harbor需要用到的组件也放到了k8s中。在最近的一次上线中发现节点不能更新镜像了。查看pod的状态时,发现Harbor需要用到的Redis服务的master节点状态异常(Error or Crash)。查看日志,发现有相应的报错信息:
Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename>
原来是因为Redis在将aof文件load到内存时失败,导致Redis启动不起来。
解决方案
redis组件的日志已经提示的很清楚,需要备份aof文件,然后使用 redis-check-aof 工具来修复这个aof文件。 执行命令为:
redis-check-aof --fix appendonly.aof
执行完毕之后,重启相应的pod,问题解决。