运行离线任务
更新时间:2019-01-23 00:33:12
容器服务抽象出离线计算的基本模型,推出了基于 Docker 容器的离线计算功能。 其核心功能包括: 下表中列出了离线应用与在线应用的概念对比。 一个离线作业包含若干个任务,每个任务可以由若干个容器来执行,每个容器可以有多个运行历史;而一个在线应用包含若干个服务,每个服务可以有若干个容器同时服务。 和在线应用一样,您可以使用 Docker Compose 来描述和编排作业。Docker Compose 支持 Docker 的绝大部分功能,比如: 除此之外,阿里云容器服务还扩展了以下功能: 离线作业的 Docker Compose 示例: 注意: 容器状态由容器的运行及退出状态决定;任务状态由该任务中所有容器的状态决定;作业状态由该作业的所有任务决定。 容器状态 任务状态
作业状态
基本概念
概念
离线应用
在线应用
容器
任务执行单元
服务的执行单元
运行历史
任务出错重试的执行历史
无
服务(任务)
一个特定的功能,可以分割成若干个容器来执行
一组功能相同的容器
应用(作业)
若干个任务的组合
若干个服务的组合
基于 Docker Compose 的作业编排
remove-finished
(删除完成的容器)、remove-failed
(删除失败的容器)、remove-all
(删除全部容器)、remove-none
(不删除)。 version: "2"
labels:
aliyun.project_type: "batch"
services:
s1:
image: registry.aliyuncs.com/jimmycmh/testret:latest
restart: no
cpu_shares: 10
mem_limit: 100000000
labels:
aliyun.scale: "10"
aliyun.retry_count: "20"
aliyun.remove_containers: "remove-all"
s2:
image: registry.aliyuncs.com/jimmycmh/testret:latest
cpu_shares: 50
mem_limit: 100000000
labels:
aliyun.scale: "4"
aliyun.retry_count: "20"
aliyun.remove_containers: "remove-finished"
aliyun.depends: "s1"
aliyun.project_type: "batch"
。如果您未添加该标签或标签值不为 batch
,则认为该应用为在线应用。 restart
设置为什么值,都会被修改为 no
。 aliyun.depends
标签指定依赖关系。可以依赖多个任务,用逗号(,)分隔。 aliyun.retry_count
的默认值为 3。 aliyun.remove_containers
的默认值为 remove-finished
。 作业生命周期管理
ExitCode==0
。 ExitCode!=0
。
上述状态都可以通过 API 获取,方便您自动化运维。
共享存储
容器之间、任务之间会有数据共享和交换,共享存储可以解决这一问题。比如在 Hadoop上跑 MR 作业,是通过 HDFS 来交换数据的。在容器服务中,可以使用三类共享存储,其特性及应用场景对比如下所示。
存储 | 优点 | 缺点 | 适用范围 |
---|---|---|---|
OSSFS 数据卷 | 跨主机共享 | 读写、ls 性能低;修改文件会导致文件重写 | 共享配置文件;附件上传 |
阿里云 NAS 数据卷 | 跨主机共享;按需扩容; 高性能、高可靠性;挂载速度高 | 成本略高 | 需要共享数据的重 IO 应用,如文件服务器等;需要快速迁移的重 IO 应用,如数据库等 |
您自己集成成三方存储,如 Portworx | 将集群内的云盘虚拟成共享的大磁盘;性能高;snapshot、多拷贝 | 需要一定运维能力 | 同 NAS |
具体使用数据卷的帮助,可以参考以下文档:
集成日志和监控服务
日志和监控是分析离线作业的重要工具。阿里云容器服务集成了阿里云日志服务与云监控功能,只要在编排模板中添加一个标签,就可以将日志收集到日志服务,将容器的 CPU、内存等数据收集到云监控。具体使用方便请参考下面的文档。
操作步骤
相关文档
相关产品
-
容器服务(已停止服务)
容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大地简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造 Docker 云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。
-
容器服务Kubernetes版
容器服务Kubernetes版(Container Service for Kubernetes)提供高性能可伸缩的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理。
-
容器镜像服务
容器镜像服务(Container Registry)提供安全的应用镜像托管能力,精确的镜像安全扫描功能,稳定的国内外镜像构建服务,便捷的镜像授权功能,方便用户进行镜像全生命周期管理。容器镜像服务简化了Registry的搭建运维工作,支持多地域的镜像托管,并联合容器服务等云产品,打造云上使用Docker的一体化体验。
以上内容是否对您有帮助?
在文档使用中是否遇到以下问题
-
内容错误
-
更新不及时
-
链接错误
-
缺少代码/图片示例
-
太简单/步骤待完善
-
其他
-
内容错误
-
更新不及时
-
链接错误
-
缺少代码/图片示例
-
太简单/步骤待完善
-
其他
更多建议
匿名提交感谢您的打分,是否有意见建议想告诉我们?
感谢您的反馈,反馈我们已经收到
文档反馈
鼠标选中内容,快速选择问题
选中存在疑惑的文档内容,即可生成 截图进行反馈,我们会跟进处理。
文档反馈