1

我有一个在 Openshift 3 上运行的 django 应用程序。我需要定期运行某些 manage.py 命令。在 Openshift 2 中,我使用了 Cron 齿轮,现在在 Openshift 3 中,我想使用 CronJob pod 类型。

我想为 cronjob 创建一个 pod,使用与 django 应用程序相同的源,但不公开它。

例如:

W1 - Django 应用程序 D1 - Postgres DB

M1 - 用于 manage.py 作业的 django 应用程序,作为 cronjob pod 运行。

任何帮助表示赞赏。

4

3 回答 3

0

您想使用计划的作业。

请注意,此时(OpenShift 3.5),您必须使用batch/v2alpha1API 版本。请注意显示旧版本标签的过时文档。

我不确定的是,当您使用 S2I 构建器构建应用程序并且想要使用相同的图像时,如何轻松引用与现有图像流相关联的图像。用于此的基本 Kubernetes 对象希望您从镜像注册表中引用镜像。因此,您需要通过查看图像流并手动复制图像注册表 IP 和图像详细信息来解决这个问题。


更新 1

看:

有关如何从 OpenShift 3.6 中让它自动解析图像流名称的详细信息。该机制在 3.6 中仍处于 alpha 状态,但确实有效。

于 2017-06-29T03:45:16.590 回答
0

我已经让它与在 YAML 中指定图像名称一起工作,但随后试图让它作为模板的一部分工作,但在尝试在此服务器上使用批处理/v1 版本时遇到错误

无法创建 cron 作业“djangomanage”。此服务器不支持种类 CronJob 的 API 版本 batch/v1。

我的模板代码是

  - apiVersion: batch/v1
    kind: CronJob
    metadata:
      name: djangomanage
    spec:
      schedule: "*/5 * * * *"  
      jobTemplate:             
        spec:
          template:
            spec:
              containers:
              - name: djangomanage
                image: '${NAME}:latest'
                env:
                  - name: APP_SCRIPT
                    value: "/opt/app-root/src/cron.sh"
              restartPolicy: Never

CRON.SH

python /opt/app-root/src/manage.py 
于 2017-07-02T16:12:25.463 回答
0

你需要用这个更新第 1 行:

- apiVersion: batch/v1beta1

请参阅下面的链接: https ://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#cronjob-v1beta1-batch

于 2020-08-18T15:30:41.517 回答