K8S CronJob简单入门,和手动重复操作Say Goodbye!

网友投稿 325 2022-10-25

K8S CronJob简单入门,和手动重复操作Say Goodbye!

有时,调度一个应用程序进程、一些重复的操作(如发送邮件、告警、验证等)是极为必要的。在server上,我们通常使用一个cron,它极易设置和维护。如果你对此还不甚了解,可以访问以下链接,你需要知道的所有关于cron的信息都在此:batch/v1beta1 kind: CronJob metadata: name: my-cron-job spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: my-cron-job image: curlimages/curl resources: limits: cpu: "1" memory: "300Mi" requests: cpu: "1" memory: "300Mi" args: - /bin/sh - -c - date; echo "Starting an example of CronJob"; resp=$(curl -I --; echo $resp; exit 0 restartPolicy: Never successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 3

CronJob已经创建,它每分钟运行一个curl镜像。

同时,你需要设置资源限制(如CPU和内存),如果你将AWS、Azure或GCP实例作为args,最好的可视化方式是在Google上进行简单的curl即可。

这一实例永远不会重启,而且成功和失败的历史job都有一个限制,在本例中这一次数设置为3。

spec.successfulJobsHistoryLimit:要保留的成功完成的cronjob的数量 spec.failedJobsHistoryLimit:要保留的失败的cronjob的数量

如果你想了解更多关于CronJob API的信息,我强烈建议你阅读以下链接中的内容:kubectl apply -f cronjob.yml

如果没有错误发生,你能使用以下命令看到你最近配置的cronjob:

$ kubectl get cronjob

我使用Lens来可视化所有可用的cronjob,它对Kubernetes中的跟踪和监控都非常有用。

查看日志:

运行以下命令即可删除这一条目:

$ kubectl delete cronjob my-cron-job

在本例中运行了一个简单的Cron以及一个实例。

我发现CronJob有一个局限性是需要通过在每个进程中添加一行来为同一进程调度多个CronJob。但是,Kubernetes 1.8 beta中不提供CronJob,你必须使用并行机制(parallelism)复制相同的CronJob。对于另一个调度,你需要创建另一个cron条目。我期待着将来有机会为同一进程调度多个模式。

结 论

Kubernetes CronJob非常有用并且易于学习,你可访问以下链接阅读和了解有关API参数的更多信息,并运行一些测试以更好地了解其工作原理:https://dzone.com/articles/kubernetes-cronjob-an-introduction

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HDMI 2.1接口规格介绍
下一篇:有道翻译API(有道翻译Api 限制)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~