普通任务是一次性运行的短任务,部署完成后即可执行。正常退出(exit 0)后,任务即执行完成。
普通任务是用来控制批处理型任务的资源对象。批处理业务与长期伺服业务(Deployment、Statefulset)的主要区别是:
批处理业务的运行有头有尾,而长期伺服业务在用户不停止的情况下永远运行。Job管理的Pod根据用户的设置把任务成功完成就自动退出了。成功完成的标志根据不同的spec.completions策略而不同,即:
已创建资源,具体操作请参见购买节点(按需计费)。若已有集群和节点资源,无需重复操作。
镜像仓库的使用步骤请参考上传镜像至容器镜像服务。
参数 |
参数说明 |
---|---|
* 任务名称 |
新建任务的名称,命名必须唯一。 请输入4到63个字符的字符串,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 |
* 容器集群 |
新建任务所在的集群。 |
* 命名空间 |
新建任务所属的命名空间,默认为default。 |
* 实例数量 |
任务的实例数量。任务可以有一个或多个实例,用户可以设置具体实例个数,默认为1。 每个任务实例都由相同的容器部署而成。设置多个实例主要用于实现高可靠性,当某个实例故障时,任务还能正常运行。 |
* 容器运行时 |
请选择容器的运行时(Runtime),创建后不可修改。该参数仅支持CCE Turbo集群。
两种容器运行时的对比请参见普通容器与安全容器的区别。 |
CCI弹性承载 |
该参数仅在安装virtual kubelet插件后才显示,具体请参见virtual-kubelet。 勾选此选项后,当集群资源不足时,支持将Pod部署到云容器实例CCI。 |
任务描述 |
任务描述信息。 |
参数 |
说明 |
---|---|
镜像 |
导入的镜像,您可单击“更换镜像”进行更换。 |
* 镜像版本 |
选择需要部署的镜像版本。 |
* 容器名称 |
容器的名称,可修改。 |
容器规格 |
CPU配额:
内存配额:
申请和限制的具体请参见设置容器规格。 GPU配额:当集群中包含GPU节点时,才能设置GPU,无GPU节点不显示此选项。 容器需要使用的GPU百分比。勾选“使用”并设置百分比,例如设置为10%,表示该容器需使用GPU资源的10%。若不勾选“使用”,或设置为0,则无法使用GPU资源。 GPU显卡:工作负载实例将被调度到GPU显卡类型为指定显卡的节点上。 若勾选“不限制”,容器将会随机使用节点中的任一显卡。您也可以勾选某个显卡,容器将使用特定显卡。 昇腾 310配额:容器需要使用的昇腾 310芯片个数,此处须为整数。 选用AI加速型节点并安装huawei-npu插件后该参数设置将生效。AI加速型节点目前已开放公测,该节点搭载高性能、低功耗的海思Ascend 310 AI处理器,适用于图像识别、视频处理、推理计算以及机器学习等场景,点此可立即申请。 |
参数 |
参数说明 |
---|---|
生命周期 |
|
环境变量 |
|
数据存储 |
支持挂载本地磁盘或者云存储到容器中,以实现数据文件的持久化存储。 详细步骤请参见存储管理。 |
容器日志 |
CCE支持配置工作负载日志策略,便于日志收集分析,以及按周期防爆处理。详细步骤请参见采集容器标准输出日志。 |
待状态为“执行中”,普通任务创建成功。
Job的配置参数如下所示。
根据.spec.completions和.spec.Parallelism的设置,可以将Job划分为以下几种类型。
Job类型 |
说明 |
使用示例 |
---|---|---|
一次性Job |
创建一个Pod直至其成功结束 |
数据库迁移 |
固定结束次数的Job |
依次创建一个Pod运行直至completions个成功结束 |
处理工作队列的Pod |
固定结束次数的并行Job |
依次创建多个Pod运行直至completions个成功结束 |
多个Pod同时处理工作队列 |
并行Job |
创建一个或多个Pod直至有一个成功结束 |
多个Pod同时处理工作队列 |
以下是一个Job配置示例,保存在myjob.yaml中,其计算π到2000位并打印输出。
apiVersion: batch/v1 kind: Job metadata: name: pi-with-timeout spec: completions: 50 # Job结束需要运行50个Pod,这个示例中就是打印π 50次 parallelism: 5 # 并行5个Pod backoffLimit: 5 # 最多重试5次 template: spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: Never
说明:
运行该任务,如下:
[root@k8s-master k8s]# kubectl apply -f myjob.yaml job.batch/myjob created
kubectl get job
[root@k8s-master k8s]# kubectl get job NAME COMPLETIONS DURATION AGE myjob 1/1 23s 3m45s
completions为 1/1 表示成功运行了这个job。
kubectl get pod
[root@k8s-master k8s]# kubectl get pod NAME READY STATUS RESTARTS AGE myjob-29qlw 0/1 Completed 0 4m5s
状态为Completed表示这个job已经运行完成。
kubectl logs
[root@k8s-master k8s]# kubectl logs myjob-29qlw hello k8s job!
普通任务创建完成后,您还可执行表5中操作。
内容简要: 一、数据仓库架构升级的背景 二、基于 Iceberg 的湖仓一体架构实践 ...
添加软件源之后,您可以使用Linux系统提供的包管理工具,安装所需要的软件包。本...
讨论 服务器托管 问题时,销售人员总会说些关于带宽租用的问题。这些问题对 服务...
本文转自微信公众号“轻金融” https://mp.weixin.qq.com/s/DUBo6eJ7msbdA8Cbm3R...
前言 关于链表,常见的算法问题有以下几种: 单链表反转 两个有序的链表合并 删...
为资源绑定标签后,您可以通过本文介绍的两种方法使用标签快速检索资源,支持精...
9月28日,在工业和信息化部、北京市人民政府、国际电信联盟ITU-T指导的2020 AIIA...
作者:友盟+数据大使 kevin 如今,移动互联网的红利期接近尾声,导致整个市场增...
2020年,新冠肺炎疫情对全球经济造成巨大冲击。同时,有一个词走入公众视野,就...
全球化的今天,大多企业将产品市场瞄准国外,越来越多的外贸公司开始选择在境外...