文档

K8s任务

更新时间:

SchedulerX支持定时调度程序、多语言脚本和HTTP接口,也支持调度原生的K8s Job或者Pod。本文介绍如何在Kubernetes环境中部署SchedulerX。

前提条件

接入SchedulerX,具体操作,请参见在Kubernetes集群中部署SchedulerX

创建K8s任务

Shell脚本

如果想通过Pod运行Shell脚本,不需要自己构建镜像,只需要在任务管理创建一个K8s任务,资源类型选择Shell-Script,镜像默认是busybox(也可以替换为自己的镜像)。

1
单击运行一次,在Kubernetes集群中可以看到Pod启动,Pod名称为schedulerx-shell-{JobId}。7
在SchedulerX控制台任务管理页面可以查询历史执行记录,也可以看到Pod运行的日志。7

Python脚本

如果想通过Pod运行Python脚本,不需要自己构建镜像,只需要在任务管理创建一个K8s任务,资源类型选择Python-Script,镜像默认是Python(也可以替换为自己的镜像)。

2
单击运行一次,在Kubernetes集群中可以看到Pod启动,Pod名称为schedulerx-python-{JobId}。7
在SchedulerX控制台任务管理页面可以查询历史执行记录,也可以看到Pod运行的日志。8

PHP脚本

如果想通过Pod运行PHP脚本,不需要自己构建镜像,只需要在任务管理创建一个K8s任务,资源类型选择Php-Script,镜像默认是php:7.4-cli(也可以替换自己的镜像)。

3
单击运行一次,在Kubernetes集群中可以看到Pod启动,Pod名称为schedulerx-php-{JobId}。12
在SchedulerX控制台任务管理页面可以查询历史执行记录,也可以看到Pod运行的日志8

Node.js脚本

如果想通过Pod运行Node.js脚本,不需要自己构建镜像,只需要在任务管理创建一个K8s任务,资源类型选择Nodejs-Script,镜像默认是node:16(也可以替换自己的镜像)。

4
单击运行一次,在Kubernetes集群中可以看到Pod启动,Pod名称为schedulerx-node-{JobId}。8
在SchedulerX控制台任务管理页面可以查询历史执行记录,也可以看到Pod运行的日志。8

Job-YAML

通过SchedulerX也可以运行K8s原生的Job,任务类型选择K8s,资源类型选择Job-YAML。

5
单击运行一次,在Kubernetes集群中可以看到Job和Pod启动成功。8
在SchedulerX控制台任务管理页面可以查询历史执行记录,也可以看到Pod运行的日志。8
重要 通过SchedulerX运行K8s Job,不建议使用CronJob,定时调度需要使用SchedulerX来配置,否则无法收集每次Pod的执行历史和日志。

Pod-YAML

通过SchedulerX也可以运行K8s原生的Pod,任务类型选择K8s,资源类型选择Pod-YAML。

6
单击运行一次,在Kubernetes集群中可以看到Pod启动成功。9
在SchedulerX控制台任务管理页面可以查询历史执行记录,也可以看到Pod运行的日志。9
重要 通过SchedulerX运行K8s Pod,建议不要运行长周期的Pod(比如Web应用,一旦启动永远不会结束),重启策略需要设置成Never(否则Pod会不断重启)。