【发布时间】:2022-01-11 07:09:36
【问题描述】:
我有一堆位于 EKS 集群中的 cron 作业,并希望通过 HTTP 调用来触发它们。 Kubernetes 中是否存在这样的 API?如果不行,还有什么办法?
【问题讨论】:
标签: kubernetes amazon-eks kubernetes-cronjob
我有一堆位于 EKS 集群中的 cron 作业,并希望通过 HTTP 调用来触发它们。 Kubernetes 中是否存在这样的 API?如果不行,还有什么办法?
【问题讨论】:
标签: kubernetes amazon-eks kubernetes-cronjob
Kubernetes 中的每个操作都可以通过 REST API 调用来调用。这在docs 中也有说明。
您可以查看完整的 Kubernetes API API reference。
事实上,kubectl 在后台使用 http。您可以通过使用带有一些verbosity level 的v 标志来查看这些http 调用。例如:
$ 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>
这是使用的是 RESTful 服务的 Kube Api,所以我认为它可以满足您的要求。
【讨论】: