如何安排执行kubectl命令的cronjob?
我想每5分钟运行以下kubectl命令:
kubectl patch deployment runners -p '{"spec":{"template":{"spec":{"containers":[{"name":"jp-runner","env":[{"name":"START_TIME","value":"'$(date +%s)'"}]}]}}}}' -n jp-test
Run Code Online (Sandbox Code Playgroud)
为此,我创建了一个cronjob,如下所示:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- kubectl patch deployment runners -p '{"spec":{"template":{"spec":{"containers":[{"name":"jp-runner","env":[{"name":"START_TIME","value":"'$(date +%s)'"}]}]}}}}' -n jp-test
restartPolicy: OnFailure
Run Code Online (Sandbox Code Playgroud)
但是它无法启动容器,显示消息:
Back-off restarting failed container
Run Code Online (Sandbox Code Playgroud)
并显示错误代码127:
State: Terminated
Reason: Error
Exit Code: 127
Run Code Online (Sandbox Code Playgroud)
从我检查的内容来看,错误代码127表示该命令不存在。我怎样才能将cubectl命令作为cron作业运行?我想念什么吗?
注意:我已经发布了一个类似的问题(在不停机的情况下按计划重启Kubernetes pod),但这更多的是将主要部署本身作为cronjob,在这里我试图使用CronJob-所以我认为最好单独发布
kubectl描述cronjob你好-n jp-test:
Name: hello
Namespace: jp-test
Labels: <none>
Annotations: …Run Code Online (Sandbox Code Playgroud)