3

我希望完全了解 Kubernetes 中的工作。

我已成功创建并执行了一个作业,但我没有看到用例。

无法重新运行作业或无法积极聆听它的完成让我觉得管理起来有点困难。

有人在使用它们吗?哪个是用例?

谢谢你。

4

2 回答 2

3

作业会重试 pod 直到它们完成,以便您可以容忍导致 pod 被删除的错误。

如果您想重复并定期运行作业,您可以使用CronJob alphacronetes

一些 Helm Charts 使用作业在集群上运行安装、设置或测试命令,作为安装服务的一部分。(示例)。

如果您为作业保存 YAML,那么您可以通过删除旧作业并再次创建它来重新运行它,或者通过编辑 YAML 以更改名称(或sed在脚本中使用)。

您可以使用以下命令查看作业的状态:

kubectl get jobs myjob -w

-w选项监视更改。您正在寻找SUCCESSFUL要显示的列1

这是一个等待作业完成的 shell 命令循环(例如在脚本中): until kubectl get jobs myjob -o jsonpath='{.status.conditions[?(@.type=="Complete")].status}' | grep True ; do sleep 1 ; done

于 2017-06-27T15:46:01.237 回答
1

一个用例可以是备份数据库。但正如已经提到的,运行作业会产生一些开销,例如当作业完成时,Pod 不会被删除。所以您需要手动删除作业(这也会删除作业创建的 pod)。所以推荐的选项是使用 Cron 而不是 Jobs

于 2018-01-03T17:09:37.640 回答