如何使用helm调用带有预删除钩子的pod内部脚本

问题描述 投票:0回答:1

我想使用预删除挂钩调用 pod 内部的脚本。使用 kubernetes 挂钩,这些脚本似乎是在实际的 pod 内执行的,但据我所知,在 helm 中,这些脚本在单独的 pod 中运行,因此它们将无法与我的 pod 中运行的任何进程进行交互。

有没有办法像 kubernetes 使用 helm 那样调用要删除的 pod 内部的脚本?

kubernetes kubernetes-helm
1个回答
0
投票

Helm 不具备此功能。 Helm hook 总是在安装/升级/删除生命周期的某个特定点创建新资源,这通常是一项作业;这意味着新的 Job 将创建一个新的 Pod。 Helm 无法执行

kubectl exec
或以其他方式运行命令式命令。

一般来说,“在容器中运行命令”不是典型的工作流程,您应该设计应用程序和部署来避免这种情况。举一个例子,在 Kubernetes 中,您可以非常轻松地运行一个 Deployment 的多个副本,并且您通常会希望运行多个副本以实现基本冗余。现在,如果您的关闭挂钩需要在 Pod 中运行命令,它会执行哪一个命令,另外两个会发生什么情况?如果哪一个并不重要,那么启动一个专门的作业来进行清理也应该可以正常工作。如果每个 Pod 都需要运行它,那么在您的应用程序中放置一个关闭钩子将更加可靠,甚至在非 Kubernetes 上下文中也能工作。

© www.soinside.com 2019 - 2024. All rights reserved.