velero备份失败排查与解决
最近发现有一个集群的velero经常失败。
排查经过
- 查看velero备份状态
1 | # 所有的备份 |

发现其状态是InProgress
如果是正常完成的

状态会是Completed
也可以通过
1 | velero get backups |
查看

查看velero备份日志
1
2# velero backup logs backup-all-20230410170007
Logs for backup "backup-all-20230410170007" are not available until it's finished processing. Please wait until the backup has a phase of Completed or Failed and try again.发现只有完成的或失败的,才能看日志,InProgress状态的不能查看日志
看一下velero的pod的日志
1
kubectl -n velero logs velero-84c6fd74dc-q7gph
全是info日志,没有看出什么
然后describe一下pod看看
1
kubectl -n velero describe pod velero-84c6fd74dc-q7gph

因为是OOM问题,把memory限制改大点试试。
修改其deployment
1 | kubectl -n velero edit deploy velero |

根因
当velero的backup的集群或者namespace里资源比较多的情况下,容易触发OOM。
这些OOM的backup任务就会停留在InProgress状态
OOM之后,velero的pod重启,但是并不会执行之前InProgress状态的任务
所以就一直是InProgress状态
后来查看github发现,这是velero的一个bug,在1.8.0版本修复了。
想要升级velero,结果发现我们的k8s集群版本是1.17,velero1.8要求k8s在1.18以上,无奈作罢。

后续观察
经过几天的观察,发现效果还不错。最近几天都是Completed
