创建任务工作负载job
创建任务工作负载Job
1. 前提条件
已创建容器集群,具体操作请参见 创建集群 ;
已构建私有镜像仓库。
2. 操作步骤
登录容器云服务控制台,若默认进入的集群非目标集群,可在顶部的导航栏出切换进入集群;
在左侧导航栏中,选择【工作负载】->【任务】;
单击【创建】,进入“创建任务”页面。根据实际需求,完成参数设置:
基本信息
- 负载名称:设置负载资源的名称;
- 命名空间:根据实际需求选择集群下的命名空间;
- 实例类型:根据需要选择容器实例的机型配置;
- Job标签:输入键-值对(Key-Value),为Job设置标签;
- Job注释:输入键-值对(Key-Value),为Job设置注释;
容器配置
- 镜像名称:
- 我的镜像:若已开通容器镜像服务,则对应显示该区域镜像仓库镜像信息。根据需要进行选择;
- 公共镜像:平台提供的公共镜像;
- 镜像tag:选择镜像tag;
- 选择Secret:当选择镜像为【我的镜像】私有镜像时,需要关联选择对应镜像仓库的Secret;
- 镜像拉取策略:
- IfNotPresent:如果本地存在该镜像,则使用本地镜像;若本地无该镜像,则从远程拉取镜像;
- Always:每次部署总是从远程拉取镜像;
- 所需资源:容器的GPU/CPU/内存,根据需要设置;
- 容器启动项:
- stdin:勾选表示为该容器开启标准输入;
- tty:勾选表示为该容器分配一个虚拟终端;
初始化容器:勾选表示创建一个init Container;
展开页面【高级设置】设置按钮,可完成以下参数设置:
端口设置:
- 名称:设置容器端口的名称;
- 容器端口:设置暴露的容器访问端口,端口范围1~65535;
- 协议:支持TCP、UDP;
- 环境变量:
- 类型:设置环境变量的类型,支持:
- 自定义
- 配置项ConfigMap
- 保密字典Secret
- 变量名称:设置环境变量的名称;
- 变量/变量 引用:设置变量引用的值;
- 类型:设置环境变量的类型,支持:
- 工作目录:设置容器的工作目录;
- 运行命令:设置容器运行的输入命令;
- 运行参数:传递给容器运行命令的输入参数;
- 健康检查:
- 存活检查:勾选后可进行设置,用来检查容器是否正常,不正常则重启容器;
- 就绪检查:勾选后可进行设置,使用就绪检查可以判断容器合适准备好接受流量;
- 启动检查:勾选后可进行设置,用于检测容器内应用是否启动;
- 生命周期:勾选后可设置容器的启动前处理和停止前处理。支持二进制方式和bash方式;
存储:为容器提供存储,支持本地存储和PVC;
添加本地存储:支持临时目录、ConfigMap、Secret,将对应的挂载源挂载到容器路径中;
添加PVC:支持通过PVC挂载云存储卷。选择挂载源前需要提前创建好PVC,具体操作请参见 使用云硬盘静态存储卷 或 使用CFS动态存储卷 。
任务配置
- 成功运行的Pod数:指定Job需要成功运行的Pod数量,默认值为1;
- 并行运行的Pod数:指定Job并行运行的Pod数量,默认值为1;
- 超时时间:设置Job运行时间限制,超过时间Job未结束,系统会终止Job;
- 重试次数:设置Pod执行失败时,重新创建Pod的次数;
- 重启策略:设置Pod执行失败时,重启策略,支持不重启和失败时;
- Pod标签:输入键-值对(Key-Value),为Pod设置标签;
- Pod注释:输入键-值对(Key-Value),为Pod设置注释。
3. 使用YAML创建Job
登录容器云服务控制台,若默认进入的集群非目标集群,可在顶部的导航栏出切换进入集群;
在左侧导航栏中,选择【工作负载】->【任务】;
单击【YAML 创建】,完成参数设置:
- 模板:支持使用定义模板或平台提供的系统模板;
- 模板内容:选择好模板后,在“模板内容”区域可以对模板进行编辑。完成参数设置后,点“保存模板”可将改动保存到自定义模板。点“确定”完成创建。
4. 使用kubectl创建Job
参考系统模板,根据需要准备好创建Job的YAML文件;
YAML示例:
apiVersion: "batch/v1"
kind: "Job"
metadata:
annotations:
node.yovole.com/cpu-type: "intel"
labels:
job-name: "job01"
name: "job01"
namespace: "default"
spec:
activeDeadlineSeconds: 600
backoffLimit: 3
completionMode: "NonIndexed"
completions: 1
parallelism: 1
suspend: false
template:
spec:
containers:
- command:
- "date"
image: "nginx:latest"
imagePullPolicy: "IfNotPresent"
name: "job-1"
resources:
requests:
cpu: "1"
memory: "1024m"
terminationMessagePath: "/dev/termination-log"
terminationMessagePolicy: "File"
dnsPolicy: "ClusterFirst"
restartPolicy: "Never"
schedulerName: "default-scheduler"
terminationGracePeriodSeconds: 30
安装kubectl工具,获取访问集群的kubeconfig,具体操作请参见 使用kubectl工具连接集群操作步骤 ;
在kubectl客户端执行命令创建Job:
kubectl --kubeconfig KUBECONFIG_NAME create -f Job YAML 文件名称
执行以下命令,查看Job创建结果。
kubectl --kubeconfig KUBECONFIG_NAME get jobs -A
说明:
如果模板设置的资源规格(CPU/内存/GPU)不符合系统设置,系统会自动规整为标准配置,具体说明请参见 关于yaml指定资源规格 ,查看YAML看到的规格是提交时用户设置值,不是系统规整后的值。