Kubernetes:仅在节点重新启动时运行作业一次
在Kubernetes中,有没有一种方法可以在机器重新启动时只运行一次作业 曾想过将cronjob作为静态pod运行,但kubelet似乎不喜欢它Kubernetes:仅在节点重新启动时运行作业一次,kubernetes,cron,jobs,kubernetes-pod,kubelet,Kubernetes,Cron,Jobs,Kubernetes Pod,Kubelet,在Kubernetes中,有没有一种方法可以在机器重新启动时只运行一次作业 曾想过将cronjob作为静态pod运行,但kubelet似乎不喜欢它 编辑:根据回复,我想澄清一下。我只是想通过土生土长的库伯内特人来做这件事。我可以用Kubernetes编写cronjob,但我只需要在节点重新启动时运行一次即可。不确定您的平台 例如,在AWS中,ec2实例具有user\u数据() 它将在启动时在Linux/Windows实例上运行命令 P>您可以很好地找到其他云提供商或本地服务器的类似解决方案。
编辑:根据回复,我想澄清一下。我只是想通过土生土长的库伯内特人来做这件事。我可以用Kubernetes编写cronjob,但我只需要在节点重新启动时运行一次即可。不确定您的平台 例如,在AWS中,ec2实例具有
user\u数据
()
它将在启动时在Linux/Windows实例上运行命令
<> P>您可以很好地找到其他云提供商或本地服务器的类似解决方案。 < P>如果我理解正确,您应该考虑使用:
守护程序集确保所有(或部分)节点运行Pod的副本。作为
节点被添加到集群中,吊舱被添加到集群中。正如节点一样
从集群中移除后,这些吊舱将被垃圾收集。删除
守护进程集
将清理它创建的POD
这样,您就可以创建一个包含作业的容器,该作业将从守护程序集运行
你可以考虑:
这是一个类似于Job的示例CompositeController
,除了
将为每个节点安排一个pod,类似于守护进程集
还有:
Kubebuilder是一个使用自定义
资源定义(CRD)
以及:
Metacontroller是Kubernetes的一个附加组件,它使编写变得简单
并以简单脚本的形式部署自定义控制器
但我认为,我提供的第一个选择更容易实施
如果有帮助,请告诉我 考虑为此使用CronJob。它采用与linux上普通cron调度程序相同的格式。
除了常用格式(分钟/小时/月日/月日/周日)广泛用于指示计划外,cron scheduler还允许使用@reboot
。
此指令后跟脚本的绝对路径,将使其在机器引导时运行