gpt4 book ai didi

kubernetes - 如何告诉 Helm 不要运行作业

转载 作者:行者123 更新时间:2023-12-05 03:28:31 25 4
gpt4 key购买 nike

我正在尝试使用 helm 制作 Kubernetes 部署脚本。我创建了以下 2 个作业(跳过了容器模板,因为我想这无关紧要)

templates/jobs/migrate.yaml

apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Release.Name }}-migrate
namespace: {{ .Release.Namespace }}
annotations:
"helm.sh/hook": post-install
"helm.sh/hook-weight": "10"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
...

模板/工作/seed.yaml

apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Release.Name }}-seed
namespace: {{ .Release.Namespace }}
spec:
...

第一项工作是更新数据库结构。
第二个作业将重置数据库内容并用示例数据填充它。

因为我没有将 post-install Hook 添加到种子作业中,所以我希望该作业不会自动运行,而是只有在我手动要求它运行时才会运行。
但它不仅自动运行,而且还尝试在迁移之前运行。

如何定义必须手动触发才能运行的作业?
在 vanilla kubernetes 中,作业仅在我使用
显式执行它们的文件时运行kubectl apply -f job/seed-database.yaml

我如何使用 helm 做同样的事情?

最佳答案

回复您最后的评论并感谢@HubertNNN 的想法:

Can I run a suspended job multiple times? From documentation it seemslike a one time job that cannot be rerun like normal jobs

这是正常的工作,您只需使用 .spec.suspend: true 编辑 yaml 文件,它是 startTime:

apiVersion: batch/v1
kind: Job
metadata:
name: myjob
spec:
suspend: true
parallelism: 1
completions: 5
template:
spec:
...

If all Jobs were created in the suspended state and placed in a pending queue, I can achieve priority-based Job scheduling by resuming Jobs in the right order.

更多信息是here

关于kubernetes - 如何告诉 Helm 不要运行作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71240467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com