ASK 运行Job 任务| 学习笔记

简介: 快速学习 ASK 运行Job 任务

开发者学堂课程【5分钟玩转阿里云容器服务ASK 运行Job 任务】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1038/detail/17352


ASK 运行 Job 任务

 

今天我们带大家玩转的是 ASK 运行 Job 任务

image.png

现实中有很多短暂的一次性任务的场景,如CI/CD任务、数据计算任务、视频转码、发送邮件、定时任务等。因为有一次运行,运完即停的特点.非常适合使用ASK,无需预留资源,按需使用,避免闲置进而降低成本。

下面我们就来演示一下在ASK上运行Job任务。

首先创建1个ASK集群,和上节课程一样,创建1个使用企业安全组的Pro版ASK集群,并确保vSwitch有足够的IP容量,具体创建过程这里不再赘述。

大家如果有疑问可以回看上一节。现在集群已经准备好,首先依然是配置kubectl,因为这节课程示例有服务访问,先安装coreDNS,进入运维管理->组件管理->网络->CoreDNS->安装,等待安装完成。演示之前,我们先介绍演示程序。

image.png

以上实例模拟一个数据计算任务。我们通过1个Job并行运行500Pod,从中心服务获取任务并执行,执行完成后将结果返回给中心服务。先观察中心服务程序的代码,v~/Downloads/core$ vi main.go,实现了一个计数器类型。

有3个方法,Get()获取当前值,Inc()计入器+1,Swap()设置为指定值。接下来定义2个计数器,分别用于给任务和任务完成计数。

500Pod运行完成时,2个计数器应该都是500。

下面主流程main函数中定义了4个接口,第1个-创建任务,用于模拟给调用者分发任务,即为简单的返回任务ID。第2个-完成任务,用于模拟保存任务执行结果,每调用1次完成计数器就会+1。第3个-获取任务完成数,返回任务完成数计数器当前值。

第4个-重置,用于给2个计数器清零。程序启动后在8080端口监听。接着部署这个服务,这个服务本身有2个调用方,一个是集群内Job任务对应的Pod,另一个是在主机上运行一个脚本程序,来实时查看任务完成情况。所以需要给中心服务部署2个Service,1个ClusterIP型,1个LoadBalance型。

接着复制,工作负载->无状态->创建 接下来,我们再看Job任务的manifest。

注意3点

1、同上节课程一样开启 lmageCache。

2、ASK有针对Job任务专门优化,可以通过 Pod Annotation,ECI网络配置来启用,配置为“nat_vpc”,表明Pod不能访问公网,只能访问VPC网络。

3、这里我们设置500并行运行。500次完成数,查看 Worker 的工作内容,先获取task执行,最后将结果发送到 server 端,将 Job 内容保存为 Worker 的 yaml。

为了能看到整个任务完成过程,写了一段 Shell 脚本,首先提交 Job 任务,然后记录时间,后面每隔1s,查询打印当前计数及经过的时间,这里访问的IP地址,换成前面创建的 LoadBalancer 型,Service 的公网访问地址。

接着运行,复制->粘贴->运行 接着看到Job任务很快完成。通过这节课程,我们了解到如何在 ASK 上优雅的运行Job任务。

如果大家对 Job 任务,还有更复杂的编排需求,可以使用 Argo、Tekton等开源工具。

今天的课程就到这里,如果您有什么问题请在评论区留言,下期课程,我们将用5分钟带你玩转 ASK 的成本优势,记得收看。

相关文章
|
存储 Java BI
XXL-JOB定时任务知识点和应用实例
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。该处只是介绍xxl_job的一下基础知识和使用的实例,具体的安装调试请参照对应的最新的官方文档,中文开源地址:https://www.xuxueli.com/xxl-job
3535 0
|
Kubernetes API 调度
【K8S系列】深入解析Job(下)
【K8S系列】深入解析Job
195 0
|
Kubernetes API Python
【K8S系列】深入解析Job(上))
【K8S系列】深入解析Job
451 0
|
缓存 Java 调度
xxl-job的原理(1)
xxl-job的原理(1)
117 0
|
运维
Elastic Job进阶--作业是如何被立即触发的
Elastic Job进阶--作业是如何被立即触发的
|
监控 数据可视化 Java
XXL-Job启动源码详解
XXL-Job启动源码详解
1091 0
|
SQL 分布式计算 资源调度
Spark on Yarn Job的执行流程简介
2017-12-19-Hadoop2.0架构及HA集群配置(1) 2017-12-24-Hadoop2.0架构及HA集群配置(2) 2017-12-25-Spark集群搭建 2017-12-29-Hadoop和Spark的异同 2017-12-28-Spark-HelloWorld(Spark开发环境搭建)
|
分布式计算 关系型数据库 MySQL
Job 作业的使用--创建、查看、执行、删除 | 学习笔记
快速学习 Job 作业的使用--创建、查看、执行、删除
377 0
Job 作业的使用--创建、查看、执行、删除 | 学习笔记
|
大数据 调度 开发者
Azkaban--使用实战--多 job 依赖调度 | 学习笔记
快速学习 Azkaban--使用实战--多 job 依赖调度
695 0
Azkaban--使用实战--多 job 依赖调度 | 学习笔记
|
存储 分布式计算 安全
Job 作业的使用--免密执行 | 学习笔记
快速学习 Job 作业的使用--免密执行
Job 作业的使用--免密执行 | 学习笔记

相关实验场景

更多