首页 > 解决方案 > 如果部署失败,Kubernetes 预删除钩子会阻止 helm 删除

问题描述

在我的掌舵图中,有一个预删除作业,它在执行helm delete. 如果部署顺利,就没有问题。

但是,当发生imagePullBackoff或等错误时pvc unbounded,预删除作业仍会尝试执行,并且也会进入错误状态,从而helm delete超时。

我知道有一个helm delete --no-hook选项,但我无法更改 UI 中的删除按钮以实现它,因为它是由第三方提供的。

我可以在我的图表中做些什么,以便helm delete在作业失败时自动不等待预删除作业?

标签: amazon-web-serviceskubernetesgoogle-cloud-platformcloudkubernetes-helm

解决方案


您可以尝试编写您的pre-delete钩子作业,使其始终报告成功,无论在执行主操作期间发生什么。

例子:

$ cat success.sh:

ls sdfsf || exit 0

$ cat success2.sh

set +e
ls 
ls sdfsf
exit 0

脚本总是返回(成功) success.sh,尽管脚本中的命令返回(“没有这样的文件或目录”错误)。success2.sh0ls sdfsf2

# following command also has exit code 0
$ ls sfsdf || echo -n ''

推荐阅读