Kubernetes 使用 CronJob 运行作业

Posted

技术标签:

【中文标题】Kubernetes 使用 CronJob 运行作业【英文标题】:Kubernetes Run job using CronJob 【发布时间】:2019-06-19 08:13:17 【问题描述】:

有没有一种方法可以让我使用 CronJob 资源运行现有的作业。 在 CronJob Spec 模板中,我们可以使用标签应用选择器。像这样的:

工作规范:(Link to job docs)

apiVersion: batch/v1
kind: Job
label:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4

Cron 规范:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: pi-cron
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      labelSelector:
        name: pi # refer to the job created above

我遇到了这个。我想尝试与此相反。 Create-Job-From-Cronjob

【问题讨论】:

【参考方案1】:

不,您不能以您想要的方式执行此操作。 kubectl 只允许你基于 cronjob 创建作业,反之则不行。

 kubectl create job NAME [--image=image --from=cronjob/name] -- [COMMAND] [args...] [flags] [options]

kubectl create 目前可用的命令:

  clusterrole         Create a ClusterRole.
  clusterrolebinding  Create a ClusterRoleBinding for a particular ClusterRole
  configmap           Create a configmap from a local file, directory or literal value
  deployment          Create a deployment with the specified name.
  job                 Create a job with the specified name.
  namespace           Create a namespace with the specified name
  poddisruptionbudget Create a pod disruption budget with the specified name.
  priorityclass       Create a priorityclass with the specified name.
  quota               Create a quota with the specified name.
  role                Create a role with single rule.
  rolebinding         Create a RoleBinding for a particular Role or ClusterRole
  secret              Create a secret using specified subcommand
  service             Create a service using specified subcommand.
  serviceaccount      Create a service account with the specified name

【讨论】:

只想在创建时注意kubectlcannot specify --from and command

以上是关于Kubernetes 使用 CronJob 运行作业的主要内容,如果未能解决你的问题,请参考以下文章

手动启动 Kubernetes CronJob [重复]

Docker&Kubernetes ❀ Kubernetes集群Pod控制器 - Cronjob(CJ)

Docker&Kubernetes ❀ Kubernetes集群Pod控制器 - Cronjob(CJ)

Kubernetes Cronjob的第一次使用

Kubernetes Cronjob的第一次使用

Kubernetes Cronjob的第一次使用