kubernetes - 如何在不重新创建整个部署文件的情况下将完整的 Kubernetes 部署作为 CronJob 运行?
问题描述
我正在运行一个使用 Helm 部署的 API 平台后端。PHP 服务器部署的图表在这里:
https://github.com/api-platform/api-platform/blob/main/helm/api-platform/templates/deployment.yaml
我希望运行一个 Kubernetes CronJob 来创建该服务的完整实例/pod,以便我可以使用数据库、邮件程序和模板服务运行一些查询并定期发送一些基于此的通知电子邮件这是我主要的 PHP 服务器设置的一部分。
Kubernetes 中 CronJob 的所有教程似乎都没有引用使用 Deployment,而是引用了作业模板。最坏的情况是我需要将整个部署模板重新创建为作业模板(它非常大,从上面可以看到),并且长期维护同一事物的两个版本是不切实际的。
完全接受我错误地接近这个想法并且有更好的方法的想法。
目前我的示例 CronJob 工作正常:
spec:
concurrencyPolicy: Allow
failedJobsHistoryLimit: 1
jobTemplate:
spec:
template:
spec:
containers:
- command:
- echo
- hello world
image: bash
imagePullPolicy: Always
name: hello
restartPolicy: Never
terminationGracePeriodSeconds: 30
schedule: '*/5 * * * *'
successfulJobsHistoryLimit: 3
suspend: false
但需要为服务器运行命令(在我的情况下,bin/console notifications:dailydigest
)。我在他们的 ECR 中的 AWS 上的一个容器中拥有实际的 PHP 服务器,这就是我们的部署所使用的。我看到我们在此处列出了一个图像,但我不清楚如何使用它与yaml
我正在使用的部署文件以及我们运行时推送的所有 CLI 变量helm upgrade --set [all the variables]
解决方案
推荐阅读
- html - 如何使用 GridView 上的滚动条固定标题?
- vue.js - 如何在某些路线上隐藏全局组件(例如导航栏)?
- android - 如何向android共享库发送命令
- node.js - 基于 Electron 的应用程序会传递系统范围的 nodejs 环境变量吗?
- python-3.x - 附加由python中的两个函数创建的两个数据框
- pyspark - 汇总表结果中的舍入结果(pyspark)
- sql-server - UNION 有准重复项。如何从其中一张表中进行选择
- jupyter-notebook - Jupyter Lab 中的键盘快捷键?
- javascript - 循环调用函数
- arrays - JSON 字符串数组中的 MarkLogic TDE Xpath 值