我使用 helm 来安排作业(不是 CronJobs,只是 Jobs)。我使用 ttlAfterFinished 在完成后自动删除它们。但是当我回来并尝试使用 helm 再次安排相同的工作时,它告诉我发布名称已被使用。
我的问题是:“到底是什么?”
当作业一周前完成并且 ttlAfterFinished 设置为 8 小时时,为什么作业发布名称仍在使用?
编辑:有人指出,安装的 helmcharts 存储在其他地方。那么,在使用 helm install 时如何完全清理作业呢?可以吗?
您收到的投诉来自 Helm,而不是普通的 Kubernetes。 当您
helm install
某些东西时,Helm 会跟踪它安装的内容以及设置;您可以 helm list
已安装的 Helm 版本,并为每个 helm get values
及其配置设置和 helm get manifest
获取 Helm 安装的 Kubernetes 对象。
假设您
helm install some-release-name ./chart
要安装一个图表,该图表恰好包含一个具有删除自身设置的作业。 即使 Job 对象从集群中消失,Helm 版本仍然存在,并且 helm get manifest some-release-name
将向您展示 Job 的样子。 由于 Helm 版本已经存在,重新运行 helm install
将产生错误。
这里最简单的答案是
helm upgrade --install
。 在普通图表上,会将图表中的内容与其当前值与集群中的内容进行比较,并推出更新;在这种情况下,它将重新安装作业(已使用 Helm 3.16.1 进行验证)。 如果根本没有安装图表,那么它将像 helm install
一样安装它。