Ish*_*wan 7 kubernetes k8s-cronjobber
“我只想每 10 秒在 Kubernetes 中运行一次 cronjob。为此,命令是什么?”
mor*_*ook 11
您可以\xe2\x80\x99t 使用 CronJob kubernetes 对象来运行少于 1 分钟。对于必须经常运行的流程,您可能使用了错误的工具。https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
\n您\xe2\x80\x99将需要使用bash公式(或您最喜欢的任何编程语言,Go,Java,Python或Ruby)来进行无限循环,并在部署中每次执行时休眠10秒。这是 bash/sh 的示例:
\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: cronjob-deployment\n labels:\n app: cronjob\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: cronjob\n template:\n metadata:\n labels:\n app: cronjob\n spec:\n containers:\n - name: cronjob\n image: busybox\n args:\n - /bin/sh\n - -c\n - while true; do echo call ./script.sh here; sleep 10; done\nRun Code Online (Sandbox Code Playgroud)\n如果您仍然想使用 CronJobs,您可以在定义中使用 6 个容器来实现。一种没有延迟,另一种则有 10、20、30、40 和 50 秒的延迟。
\napiVersion: batch/v1beta1\nkind: CronJob\nmetadata:\n name: hello\nspec:\n schedule: "*/1 * * * *"\n jobTemplate:\n spec:\n template:\n spec:\n containers:\n - name: no_delay\n image: busybox\n args:\n - /bin/sh\n - -c\n - echo call ./script.sh here\n - name: 10_seconds\n image: busybox\n args:\n - /bin/sh\n - -c\n - sleep 10; echo call ./script.sh here\n - name: 20_seconds\n image: busybox\n args:\n - /bin/sh\n - -c\n - sleep 20; echo call ./script.sh here\n - name: 30_seconds\n image: busybox\n args:\n - /bin/sh\n - -c\n - sleep 30; echo call ./script.sh here\n - name: 40_seconds\n image: busybox\n args:\n - /bin/sh\n - -c\n - sleep 40; echo call ./script.sh here\n - name: 50_seconds\n image: busybox\n args:\n - /bin/sh\n - -c\n - sleep 50; echo call ./script.sh here\n restartPolicy: OnFailure\nRun Code Online (Sandbox Code Playgroud)\n当然,您可能遇到的问题之一是您的进程可能会重叠(同时并发运行)。这取决于您的进程需要运行的秒数,以及 kubernetes 需要安排和创建容器的时间。
\n| 归档时间: |
|
| 查看次数: |
16546 次 |
| 最近记录: |