用于在Kubernetes中创建作业和cronjob的命令

用于在Kubernetes中创建作业和cronjob的命令,kubernetes,cron,jobs,kubectl,Kubernetes,Cron,Jobs,Kubectl,这是创建作业的有效命令吗 kubectl create job my-job --image=busybox 我从中看到了这一点。但命令不起作用。我得到的错误如下: 错误:未知标志:-图像 创建作业的正确命令是什么?您所拥有的命令应该可以工作,尽管不再建议将其作为一种方法。我会检查您的kubectl版本,如果您没有使用最新版本,可能会升级它 这就是说,现在更常见的方法是编写一个包含作业定义的YAML文件,然后运行kubectl apply-f myjob.YAML或类似程序。这种文件驱动的方法

这是创建作业的有效命令吗

kubectl create job my-job --image=busybox
我从中看到了这一点。但命令不起作用。我得到的错误如下:

错误:未知标志:-图像


创建作业的正确命令是什么?

您所拥有的命令应该可以工作,尽管不再建议将其作为一种方法。我会检查您的
kubectl
版本,如果您没有使用最新版本,可能会升级它

这就是说,现在更常见的方法是编写一个包含作业定义的YAML文件,然后运行
kubectl apply-f myjob.YAML
或类似程序。这种文件驱动的方法允许更自然的版本控制、编辑、审查等。

在“kubectl run”上使用正确的--restart字段值将生成run命令来创建部署、作业或cronjob

--restart='Always': The restart policy for this Pod.  Legal values [Always, OnFailure, Never].  If set to 'Always'
a deployment is created, if set to 'OnFailure' a job is created, if set to 'Never', a regular pod is created. For the
latter two --replicas must be 1.  Default 'Always', for CronJobs `Never`.
使用“kubectl run”创建基本的kubernetes作业,命令如下

master$kubectl run nginx--image=nginx--restart=OnFailure--dry run-o yaml>output.yaml

上面的结果应该是“output.yaml”,如下例所示,您可以根据需要编辑此yaml以进行高级配置,并通过“kubectl create-f output.yaml”创建作业,或者如果您只需要基本作业,则从上面的命令中删除--dry run选项,您将创建基本作业

apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx
spec:
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: nginx
    spec:
      containers:
      - image: nginx
        name: nginx
        resources: {}
      restartPolicy: OnFailure
status: {}
试试这个

kubectl create cronjob my-job  --schedule="0,15,30,45 * * * *" --image=busy-box

您不使用更标准的kubernetes apply有什么原因吗?不再推荐使用较旧的样式。我没有尝试过它。我在kubernetes.io中发现此命令,但它不起作用。因此检查..由于这不是kubernetes内部处理事情的推荐方法,我需要问您尝试此命令的版本是哪一个n?您好,此信息对
v1.19.0
有效吗?