最近发现有一个集群的velero经常失败。
========================
排查经过
-
查看velero备份状态
所有的备份
kubectl -n velero get backups
查看具体某个备份的状态
kubectl -n velero describe backups backup-all-20230409170058
发现其状态是InProgress
如果是正常完成的
状态会是Completed
也可以通过
velero get backups
查看
-
查看velero备份日志
# 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的日志
kubectl -n velero logs velero-84c6fd74dc-q7gph全是info日志,没有看出什么
然后describe一下pod看看
kubectl -n velero describe pod velero-84c6fd74dc-q7gph
因为是OOM问题,把memory限制改大点试试。
修改其deployment
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