容器服务 CronJob 管理

一个 CronJob 对象类似于 crontab(cron table)文件中的一行,它根据指定的预定计划周期性地运行一个 Job。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

一、创建 CronJob

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 在集群管理页面,选择集群 ID,进入集群的基本信息页面。

3. 在左侧导航栏选择工作负载,在 CronJob 页面,单击新建。

4. 在新建工作负载页面,根据实际需求,设置 CronJob 参数。关键参数信息如下:

·名称:自定义。

·命名空间:根据实际需求进行选择。

·Labels:用于资源分类管理的键值对(Key-Value)。

·Annotations:Kubernetes 注解为资源附加任意的非标识的元数据。

·定时规则:根据业务需求选择任务的定期执行策略。

·保留成功 Job 数:对应.spec.successfulJobsHistoryLimit,详情见 Jobs History Limits。

·保留失败 Job 数:对应.spec.failedJobsHistoryLimit,详情见 Jobs History Limits。

·Job 设置:

·重复次数:Job 管理的 Pod 需要重复执行的次数。

·并行度:Job 并行执行的 Pod 数量。

·失败重启策略:Pod下容器异常退出后的重启策略。

·Never:不重启容器,直至 Pod 下所有容器退出。

·OnFailure:Pod 继续运行,容器将重新启动。

·可抢占:可抢占类型的 Job 类工作负载,不会占用节点实际的可调度资源,但在发生资源竞争时,资源会被优先回收。详情请参见 可抢占式 Job。

·数据卷(选填):为容器提供存储,目前支持临时路径、主机路径、云硬盘数据卷、文件存储 NFS、配置文件、PVC,还需挂载到容器的指定路径中。

·实例内容器:根据实际需求,为 CronJob 的一个 Pod 设置一个或多个不同的容器。

·名称:自定义。

·镜像:根据实际需求进行选择。

·镜像版本:根据实际需求进行填写。

·镜像拉取策略:提供以下3种策略,请按需选择。若不设置镜像拉取策略,当镜像版本为空或 latest 时,使用 Always 策略,否则使用 IfNotPresent 策略。

·Always:总是从远程拉取该镜像。

·IfNotPresent:默认使用本地镜像,若本地无该镜像则远程拉取该镜像。

·Never:只使用本地镜像,若本地没有该镜像将报异常。

·CPU/内存限制:可根据 Kubernetes 资源限制 设置 CPU 和内存的限制范围,提高业务的健壮性。

·GPU 资源:配置该工作负载使用的最少 GPU 资源。

·高级设置:可设置工作目录、运行命令、运行参数、容器健康检查和特权级等参数。

·镜像访问凭证:容器镜像默认私有,在创建工作负载时,需选择实例对应的镜像访问凭证。

·节点调度策略:可根据调度规则,将 Pod 调度到符合预期的 Label 的节点中。

5. 单击创建 CronJob,完成创建。

二、查看 CronJob 状态

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 在集群管理页面,选择集群 ID,进入集群的基本信息页面。

3. 在左侧导航栏选择工作负载,在 CronJob 页面,单击需要查看状态的 CronJob 名称,即可查看 CronJob 详情。

三、YAML 示例

apiVersion: batch/v1kind: CronJobmetadata: name: hellospec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: – name: hello image: busybox args: – /bin/sh – -c – date; echo Hello from the Kubernetes cluster restartPolicy: OnFailure

·kind:标识 CronJob 资源类型。

·metadata:CronJob 的名称、Label等基本信息。

·metadata.annotations:对 CronJob 的额外说明,可通过该参数设置腾讯云 TKE 的额外增强能力。

·spec.schedule:CronJob 执行的 Cron 的策略。

·spec.jobTemplate:Cron 执行的 Job 模板。

四、方法一

1. 参考 YAML 示例,准备 CronJob YAML 文件。

2. 安装 kubectl,并连接集群。操作详情请参考 通过 kubectl 连接集群。

3. 执行以下命令,创建 CronJob YAML 文件。

kubectl create -f <CronJob YAML 文件名称>

例如,编辑文件,执行以下命令:

vim cronjob.yaml

创建一个文件名为 cronjob.yaml 的 CronJob YAML 文件,则执行以下命令:

kubectl create -f cronjob.yaml

五、方法二

1. 通过执行kubectl run命令,快速创建一个 CronJob。
例如,快速创建一个不需要写完整配置信息的 CronJob,则执行以下命令:

kubectl create cronjob hello –schedule="*/1 * * * *" –restart=OnFailure –image=busybox — /bin/sh -c "date; echo Hello"

2. 执行以下命令,验证创建是否成功。

kubectl get cronjob [NAME]

返回类似以下信息,即表示创建成功。

NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGEcronjob * * * * * False 0 <none> 15s

六、删除 CronJob

执行以下命令,删除 CronJob。

kubectl delete cronjob [NAME]

赞 (0)
上一篇 4天前
下一篇 4天前