【问题标题】:Kubernetes pre-delete hook blocks helm delete if deployment fails如果部署失败,Kubernetes 预删除钩子会阻止 helm 删除
【发布时间】:2019-06-15 04:28:16
【问题描述】:

在我的 helm chart 中,有一个 pre-delete 作业在执行 helm delete 时删除了一些额外的资源。如果部署顺利,那就没有问题了。

但是,当发生imagePullBackoffpvc unbounded 等错误时,预删除作业仍会尝试执行并且也会进入错误状态,因此helm delete 将超时。

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

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

【问题讨论】:

    标签: amazon-web-services kubernetes google-cloud-platform cloud kubernetes-helm


    【解决方案1】:

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

    例子:

    $ cat success.sh:
    
    ls sdfsf || exit 0
    
    $ cat success2.sh
    
    set +e
    ls 
    ls sdfsf
    exit 0
    

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

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

    【讨论】:

    • 但是当作业处于错误状态时(例如ImagePullBackOff),bash脚本甚至不会被执行
    • 这种情况下可以提前拉取需要的图片,将Job中的ImagePullPolicy改为IfNotPresent
    • 我可以做到这一点,但客户不能通过后端大声笑。感谢您的建议
    猜你喜欢
    • 2019-07-12
    • 2022-11-10
    • 1970-01-01
    • 2019-12-13
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 2020-12-08
    相关资源
    最近更新 更多