最近更新时间:2021-03-03 10:31:49
Job负责批量处理短暂的一次性任务,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。相较于Deployment, Statefulset这类正常状态下保持永远运行的任务,Job的主要区别在于成功完成用户设置的任务后会自动退出。因此Job更适合于数据处理、迁移等一次性任务处理场景。
本模块提供了基于Kubernetes原生的Job的创建、配置、删除等生命周期的管理指南。
您可以通过以下步骤在容器服务控制台通过镜像创建一个Job:
以下为创建过程中的配置详情:
目前支持使用主机路径、本地路径、金山云云硬盘、文件存储、已有PVC等存储类型。
备注:
使用本地硬盘时,若不指定源路径,则默认分配临时路径(对应k8s存储中EmpytDir)。
当使用云硬盘作为存储卷时,存储卷的名称为云硬盘的id,不可修改。
目前支持从私有镜像仓库拉取镜像时,为容器配置镜像访问凭证(对应yaml中的imagePullSecret)。
配置完成后,点击创建,返回Job列表页面,查询Job的状态。
在Job列表页面,即可查看当前命名空间下所有Job的运行状态。
点击Job名称进入某个Job的Pod列表,在状态栏中可以看到各pod当前的运行状态。
点击Job名称进入某个Job的详情页,在详情中的基本信息部分,也可以看到当前Job下不同状态pod的数量统计,状态包含“成功”,“失败”,“运行中”三种。
点击Job列表中的删除,执行删除Job的操作。
点击Job名称进入某个Job的详情页,在pod列表中点击销毁实例,即可删除某Job下的特定实例。
在Job列表页面,可以通过YAML创建资源新建Job,也可以通过Job列表中的编辑YAML更新已有Job的配置。
以下提供一个YAML示例,创建一个Job执行计算π到2000位并打印输出。
pi-job.yaml如下:
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
completions: 2
parallelism: 2
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
创建该job
# kubect apply -f pi-job.yaml
查看Job的状态
# kubectl get job
纯净模式