通过 HTTP 调用触发 Kubernetes/EKS 个 cron 作业

Trigger Kubernetes/EKS cron job via HTTP call

我有一堆 cron 作业位于 EKS 集群中,我想通过 HTTP 调用触发它们。 Kubernetes 中是否存在这样的 API?如果不行,还能做什么?

Kubernetes 中的每个动作都可以通过 rest API 调用来调用。 docs.

中也说明了这一点

您可以查看 Kubernetes API 的完整 API reference

事实上,kubectl is using http under the hood. You can see those http calls by using the v flag with some verbosity level。例如:

$ kubectl get pods -v=6
I1206 00:06:33.591871   19308 loader.go:372] Config loaded from file:  /home/blue/.kube/config
I1206 00:06:33.826009   19308 round_trippers.go:454] GET https://mycluster.azmk8s.io:443/api?timeout=32s 200 OK in 233 milliseconds
...

所以你可以通过查看 kubectl 是如何执行的来检查你需要的命令。但考虑到 kubectl 确实使用 http,直接使用 kubectl 可能更容易。

根据定义,cron 作业由时间事件(每小时、每月)触发。

如果你想强制触发你可以使用:

kubectl create job --from=cronjob/<cron-job-name> <job-name> -n <namespace>

这是使用 Kube Api,这是一项 RESTful 服务,所以我认为它可以满足您的要求。