【问题标题】:Openshift Job TriggerOpenshift 作业触发器
【发布时间】:2019-04-30 02:01:42
【问题描述】:

我们有批处理作业来处理使用 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 触发吗?

【问题讨论】:

  • 应该是可行的,这将是对控制器的 API 调用......可能只是一个作业定义 YAML,相当于 oc run 但使用 API。
  • 通常,Openshift 和 Kubernetes 中的所有内容都是使用 Rest 调用创建的。例如,在 Kubernetes 中,您可以运行“kubectl -v 10 create -f manifest.yaml”,它会为您提供适当的 curl 命令。因此,您可以使用 Rest API 轻松创建作业。

标签: kubernetes openshift


【解决方案1】:

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

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

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

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

【讨论】:

  • 我想包含 DeploymentConfig、Job、Service 和 Route.. 我们是否有一个配置,我可以将 Job 作为 DeploymentConfig 的一部分包含在内。 Job --> DeploymentConfig--> Service --> Route
  • 这些是单独的资源,因此您需要使用自己的 API 调用单独创建它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多