阿里云容器计算服务ACS集群支持通过界面创建任务类型的应用。本文将创建一个任务类型的busybox应用,并演示任务(Job)应用的特性。
背景信息
Job主要用于运行短暂的、一次性的批量任务(short-lived one-off tasks),确保批处理任务的一个或多个Pod成功执行。
Kubernetes支持以下几种Job:
非并行Job:通常创建一个Pod直至其成功结束。
固定结束次数的Job:设置
.spec.completions
,创建多个Pod,直到.spec.completions
个Pod成功结束。带有工作队列的并行Job:设置
.spec.parallelism
但不设置.spec.completions
,当所有Pod结束并且至少一个成功时,Job就认为是成功。固定结束次数的并行Job:同时设置
.spec.completions
和.spec.parallelism
,多个Pod同时处理工作队列。根据
.spec.completions
和.spec.parallelism
的设置,可以将Job划分为以下几种模式:Job类型
使用示例
行为
Completions
Parallelism
一次性Job
数据库迁移
创建一个Pod直至其成功结束
1
1
固定结束次数的Job
处理工作队列的Pod
依次创建一个Pod运行直至Completions个成功结束
2+
1
固定结束次数的并行Job
多个Pod同时处理工作队列
依次创建多个Pod运行直至Completions个成功结束
2+
2+
并行Job
多个Pod同时处理工作队列
创建一个或多个Pod直至有一个成功结束
1
2+
操作步骤
本例中创建的任务属于固定结束次数的并行Job。
登录容器计算服务控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
在集群管理页左侧导航栏,选择 。
在任务页面,单击使用镜像创建。
配置项
描述
应用名称
设置应用的名称。
类型
设置类型为任务(Job)。
标签
为该应用添加一个标签,标识该应用。
注解
为该应用添加一个注解(Annotation)。
实例类型
请选择实例类型。
QoS类型
选择QoS类型。通用型实例支持QoS类型包括“default”、“best-effort",“default”类型即为“Guaranteed”;性能型仅支持“Guaranteed”的“default”类型。详见算力质量定义。
设置容器配置。
说明您可为应用的Pod设置多个容器。
设置容器的基本配置。
配置项
描述
镜像名称
单击选择镜像,选择所需的镜像。
容器镜像服务企业版:可以选择托管在容器镜像服务ACR中的企业版镜像。需要选择镜像所属地域,以及镜像服务实例。关于ACR的更多信息,请参见什么是容器镜像服务ACR。
容器镜像服务个人版(需要提前开通):可以选择托管在容器镜像服务ACR中的个人版镜像。需要选择镜像所属地域,以及镜像服务实例。
制品中心:包含应用容器化基础OS镜像、基础语言镜像、AI/大数据相关镜像,本示例以制品中心的Nginx镜像为例说明。关于制品中心的更多信息,请参见制品中心。
ACS只支持总是拉取镜像(Always),即每次部署或扩容都会从容器镜像服务重新拉取镜像,不会从本地拉取镜像。
单击设置镜像密钥,为私有镜像设置密钥以确保安全。
CPU
可指定该容器CPU资源配额和资源限制,默认资源配额和资源限制相等,计费模式为按量计费。如果您通过YAML方式设置不同于资源配额的资源限制,资源配额将改写成与资源限制相等。详见资源规格。
内存
可指定该容器Memory资源额度和资源限制,默认资源额度和资源限制相等,计费模式为按量计费。如果您通过YAML方式设置不同于资源额度的资源限制,资源额度将改写成与资源限制相等。详见资源规格。
容器启动项
选择stdin,将控制台输入发送到容器。
选择tty,将标准输入控制台作为容器的控制台输入。
初始化容器
勾选该项,表示创建一个Init Container,Init Container包含一些实用的工具,更多信息,请参见Init Container。
端口
设置主机端口和容器端口,支持TCP/UDP协议。
可选:配置环境变量。
支持通过键值对的形式为Pod配置环境变量。用于给Pod添加环境标志或传递配置等,更多信息,请参见Pod variable。
可选:配置生命周期。
您可以为容器的生命周期配置启动执行、启动后处理和停止前处理。具体参见配置生命周期。
启动执行:为容器设置预启动命令和参数。
启动后处理:为容器设置启动后的命令。
停止前处理:为容器设置预结束命令。
可选:配置数据卷信息。
支持配置本地存储和云存储。
本地存储:配置项(configmap)、保密字典(secret)和临时目录,将对应的挂载源挂载到容器路径中。更多信息参见volumes。
云存储:支持块存储/NAS两种存储类型。
完成容器配置后,单击下一步。
进行高级设置。
您可进行任务配置。
参数
说明
成功运行的Pod数
即completions,指定job需要成功运行Pods的数量。默认值为1。
并行运行的Pod数
即parallelism,指定job在任一时刻应该并发运行Pod的数量。默认值为1。
超时时间
即activeDeadlineSeconds,指定job可运行的时间期限,超过时间还未结束,系统将会尝试进行终止。
重试次数
Pod执行失败后,尝试重建Pod的次数。默认是6次,每次失败后重试会有延迟时间,该时间是指数级增长,最长时间是6min。
重启策略
仅支持不重启(Never)和失败时(OnFailure)。
单击创建,创建成功后,默认进入创建完成页面,会列出应用包含的对象。
单击工作负载 > 任务,在任务页面,您可看到该任务已显示完成时间。
说明若任务未创建完毕所有容器组,任务不会显示完成时间。
相关操作
在左侧导航栏单击集群,单击目标集群名称或目标集群操作列下的详情,选择工作负载 > 任务,单击目标应用名称或目标应用操作列下的详情,在应用详情页面您可以伸缩、查看YAML。
伸缩:在应用详情页面单击伸缩,您可以修改所需容器组数量。
查看YAML:在应用详情页面单击查看YAML。