相关疑难解决方法(0)

如何安排执行kubectl命令的cronjob?

如何安排执行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)

busybox kubernetes kubernetes-cronjob

2
推荐指数
1
解决办法
1423
查看次数

标签 统计

busybox ×1

kubernetes ×1

kubernetes-cronjob ×1