gpt4 book ai didi

go - Cron 作业作为程序或原生 k8s 方式

转载 作者:IT王子 更新时间:2023-10-29 01:37:38 25 4
gpt4 key购买 nike

我需要在 K8S 上创建一个 Cron 作业。
有些作业每分钟运行一次,有些作业每 5 分钟运行一次 (24/7)

此作业需要对某些组件运行休息调用(获取)和检查可用性,如果有问题(发布)到其他系统的休息电话

为了处理这个任务,我目前看到两种方法

  1. 创建 k8s cronjob - 这是原生 k8s CRD 并为其使用shell 脚本https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/

PROS 使用 K8S 原生方式处理此类问题

缺点 - 很难调试,记录调试等

  1. 创建 k8s 作业/cronjob - 执行运行一个 Golang 程序,它将使用以下库作为 cronjob

PROS - 调试、日志记录等,https://github.com/robfig/cron

缺点 - 创建一些抽象......

如果我需要完全控制这些工作,有什么建议和建议是更好的使用方法

最佳答案

我会分几个步骤解决这个问题。

首先,编写执行 REST 调用的程序,检查结果,可能发布警报,然后退出。您可以使用任何您喜欢的语言或工具包来编写这个程序。如果您对 Go 感到满意,那很好;我可能会自己选择 Python;它可以作为 shell 脚本,但可能比许多替代方案更笨拙。 完全独立于 Kubernetes 构建此程序。尽可能多地测试它以说服自己它可以满足您的要求。

让 REST 轮询程序运行后,然后才将其构建到 Docker 镜像中;将其推送到注册表;并创建一个 CronJob按计划运行它的 Kubernetes 资源。

鉴于您对任务的描述,我不会编写专门的程序来复制 Kubernetes 的内置计划任务运行器。你可以;我会像上面一样开发它,但使用 Deployment 而不是 CronJob;但 CronJob 路径可能更简单也更可靠。

关于go - Cron 作业作为程序或原生 k8s 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55715625/

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