首页 > 解决方案 > Openshift 作业触发器

问题描述

我们有批处理作业来处理使用 Rest Call 触发的平面文件

For e.g. https://clustername.com/loader?filname=file1.dat
    https://clustername.com/loader?filname=file2.dat
    https://clustername.com/loader?filname=file3.dat

我们想要配置 Openshift Job 来触发这个批处理作业。

https://docs.openshift.com/container-platform/3.11/dev_guide/jobs.html

根据 Kubernetes 文档,可以使用 Queue 触发作业:

https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

作业也可以由 Rest Call 触发吗?

标签: kubernetesopenshift

解决方案


正如其他人所提到的,您可以通过 API 创建新作业来实例化作业。

您将对 IIRC 进行 POST 调用/apis/batch/v1/namespaces/<your-namespace>/jobs
(端点可能会根据您的 API 版本略有不同。)

REST 调用的有效负载是您要运行的作业的 JSON 格式清单。IE

{
    "apiVersion": "batch/v1",
    "kind": "Job",
    "metadata": {
        "name": "example"
    },
    "spec": {
        "selector": {},
        "template": {
            "metadata": {
                "name": "example"
            },
            "spec": {
                "containers": [
                    {
                        "name": "example",
                        "image": "hello-world"
                    }
                ],
                "restartPolicy": "Never"
            }
        }
    }
}

推荐阅读