
# 任务（Job）
任务是负责批量处理短暂的一次性任务(short lived one-off tasks)，即仅执行一次的任务，它保证批处理任务的一个或多个Pod成功结束。
任务（Job）是Kubernetes用来控制批处理型任务的资源对象。批处理业务与长期伺服业务（Deployment）的主要区别是批处理业务的运行有头有尾，而长期伺服业务在用户不停止的情况下永远运行。Job管理的Pod根据用户的设置把任务成功完成就自动退出（Pod自动删除）。
任务的这种用完即停止的特性特别适合一次性任务，比如持续集成，配合云容器实例按秒计费，真正意义上做到按需使用。
 #### 创建任务
1. 登录云容器实例管理控制台，左侧导航栏中选择"工作负载 \> 任务（Job）"，在右侧页面单击"镜像创建"。
2. 添加基本信息。 
   - **任务名称**
     请输入以小写字母或数字开头，小写字母、数字、中划线（-）、点（.）组成（其中两点不能相连，点不能与中划线相连），小写字母或数字结尾的1到52字符的字符串。任务名称不支持修改，如需修改名称，需要重新创建。
     
   
   - **命名空间**
     选择命名空间，如果还未创建命名空间，请参考[命名空间](https://support.huaweicloud.com/usermanual-cci/cci_01_0001.html)创建。
     
   
   - **任务描述**
     描述信息，少于等于250个字符。
     
   
   - **Pod规格**
     您可以选择使用GPU（只能在GPU型命名空间下）或不使用GPU。
     具体的规格信息请参考[约束与限制](https://support.huaweicloud.com/productdesc-cci/cci_03_0007.html)中的"Pod规格"。
     
   
   - **启用镜像快照**
     使用镜像快照（ImageSnapshot），可以避免镜像下载，减少Pod启动时间，要了解镜像快照的工作原理，请参阅[镜像快照概述](https://support.huaweicloud.com/usermanual-cci/cci_01_0112.html)。
     支持以下两种方式：
     - 自动匹配镜像快照 自动匹配将从用户创建的所有可用镜像快照中选择最优的镜像。按以下顺序进行匹配：
       a. 镜像匹配度：优先选择匹配度高的镜像快照，匹配度指的是Pod和镜像快照两者在镜像上的匹配情况。
       b. 创建时间：优先选择创建时间更新的镜像快照。
       
     
     - 明确指定 指定已有的镜像快照，并在容器配置下的"镜像快照"页签中选择镜像快照中的镜像。该镜像缓存必须为创建完成可用（Available）状态。
       ![](https://support.huaweicloud.com/usermanual-cci/zh-cn_image_0000001570583002.png)
       
      
   
   - **容器配置**
     一个Pod可以包含一个或多个运行不同镜像的容器，通常情况下一个Pod中只有一个容器，如果您的应用程序需要多个容器，请单击"添加容器"，然后选择镜像。
     ![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/notice_3.0-zh-cn.png)
     同一个Pod实例中的不同容器如果监听了相同的端口，则会导致端口冲突，Pod可能会启动失败。例如在Pod中添加了一个nginx镜像容器，启动了80端口，如果该Pod中另一个http服务的镜像也启动80端口，那么这个Pod就会出现端口冲突。
     - 我的镜像：展示了您上传到容器镜像服务的镜像。
       ![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/note_3.0-zh-cn.png)
       - 如果您开通了[企业管理](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0123692049.html)，使用账号登录云容器实例控制台时，您需要在账号下的容器镜像服务中给IAM用户添加权限，IAM用户才能使用账号下的私有镜像。给IAM用户添加权限有如下两种方法：
         - 在镜像详情中为IAM用户添加授权，授权完成后，IAM用户享有读取/编辑/管理该镜像的权限，具体请参见[在镜像详情中添加授权](https://support.huaweicloud.com/usermanual-swr/swr_01_0015.html)。
         
         - 在组织中为IAM用户添加授权，使IAM用户对组织内所有镜像享有读取/编辑/管理的权限，具体请参见[在组织中添加授权](https://support.huaweicloud.com/usermanual-swr/swr_01_0015.html)。
          
       
       
       
       - CCI当前暂不支持对接第三方镜像仓库。
         
     
     - 开源镜像中心：展示了镜像中心的公共镜像。
     
     - 共享镜像：展示了容器镜像服务中他人共享的镜像。
     
     
     镜像选择完成后，需要选择镜像的版本、设置容器名称、设置容器占用的CPU和内存规格，并选择是否开启采集标准输出文件（开启后，应用运维管理AOM将根据实际使用量进行计费）。
     ![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/note_3.0-zh-cn.png)
     每个租户一个月有500M的免费日志存储空间，超过500M时AOM将根据实际使用量进行收费，计费规则请参见[产品价格详情](https://www.huaweicloud.com/pricing.html?tab=detail#/aom)。
     对于GPU加速型Pod（仅GPU型命名空间下才可以选择），Pod中只有一个容器能使用GPU，如果您的Pod中有多个容器，您可以通过**开启GPU**这个开关选择哪个容器使用GPU。
     您还可以为容器做如下高级设置：
     - 存储：支持挂载持久化卷到容器中，以实现数据文件的持久化存储，当前支持云硬盘存储卷、对象存储卷、文件存储卷和极速文件存储卷。单击"添加云硬盘存储卷"、"添加对象存储卷"、"添加文件存储卷"或"添加极速文件存储卷"，输入名称、容量、容器内挂载路径，选择磁盘类型。任务创建完成后，可对存储卷进行管理，具体请参见[云硬盘存储卷](https://support.huaweicloud.com/usermanual-cci/cci_01_0045.html)、[对象存储卷](https://support.huaweicloud.com/usermanual-cci/cci_01_0046.html)、[文件存储卷 3.0](https://support.huaweicloud.com/usermanual-cci/cci_01_0062.html)或[极速文件存储卷](https://support.huaweicloud.com/usermanual-cci/cci_01_0069.html)。
     
     - 日志采集：支持根据您配置的日志输出路径，采集应用日志，请自行防爆处理。单击添加日志存储，输入容器内日志路径，调整日志存储空间。负载创建完成后，可在AOM界面查看日志，具体请参见[日志管理](https://support.huaweicloud.com/usermanual-cci/cci_01_0049.html)。
     
     - 环境变量：在容器中设置环境变量，支持手动输入和引用变量。环境变量为应用提供极大的灵活性，您可以在应用程序中使用环境变量，在创建容器时为环境变量赋值，容器运行时读取环境变量的值，从而做到灵活的配置，而不是每次都重新编写应用程序制作镜像。 手动输入只需要直接输入变量名称和变量值。
       变量引用支持引用PodIP（Pod的IP地址）、PodName（Pod的名称）以及Secret，输入变量名称，选择引用类型、引用值。其中Secret引用的创建请参见[使用Secret](https://support.huaweicloud.com/usermanual-cci/cci_01_0035.html)。
       
     
     - 存活探针：用于容器的自定义监控检查，如果检查失败，云容器实例将关闭该容器，然后根据默认重启策略来决定是否重启容器。详细步骤请参见[健康检查](https://support.huaweicloud.com/usermanual-cci/cci_01_0013.html)。
     
     - 生命周期：生命周期脚本定义，在容器的生命周期的特定阶段执行调用。详细步骤请参见[容器生命周期](https://support.huaweicloud.com/usermanual-cci/cci_01_0012.html)。
     
     - 启动命令：输入容器启动命令，容器启动后会立即执行。启动命令对应于容器引擎的ENTRYPOINT启动命令，详细内容请参见[容器启动命令](https://support.huaweicloud.com/usermanual-cci/cci_01_0050.html)。
     
     - 配置管理：容器支持挂载ConfigMap和Secret。ConfigMap和Secret的创建请参见[使用ConfigMap](https://support.huaweicloud.com/usermanual-cci/cci_01_0034.html)和[使用Secret](https://support.huaweicloud.com/usermanual-cci/cci_01_0035.html)。
      
   
   
   
   
3. 单击"下一步：高级设置"，进行任务高级配置。 
   任务可以分为一次性任务和自定义任务。
   - 一次性任务：一次性任务每次创建一个Pod，直至一个Pod成功执行，任务完成。
   
   - 自定义任务：自定义任务的执行次数和每次并行执行的数量。执行次数指任务达到执行完成状态需要成功执行的Pod数量。并行数指任务执行过程中允许同时创建的最大Pod数，并行数应小于执行次数。
   
   
   任务执行可以设置超时时间，当任务执行超出该时间时，任务将会被标识为执行失败，任务负载下的所有Pod实例都会被删除。为空时表示不设置超时时间。
   
   
4. 单击"下一步：规格确认"，单击"提交"，单击"返回任务列表"。 
   在任务列表中，待任务状态为"执行中"，任务创建成功。您可以单击负载名进入任务详情界面，按F5查看任务实时状态。
   
   
 
#### 使用kubectl创建任务
使用kubectl创建任务请参见[创建Job](https://support.huaweicloud.com/devg-cci/cci_05_0022.html)。
