Java架构师技术栈分享:request body读取流程详解,nginx
K8s中的批处理任务模块主要是由Job控制器完成 , 今天我们就来关注下其底层的关键设计,包括完成状态、并行模式、并行策略等关键机制1.基础概念
在聊k8s的任务模块的实现的时候 , 我们先看一下传统的任务系统的设计与实现 , 然后聊下基于k8s的基础的概念1.1传统的任务系统设计
文章图片
传统的任务系统设计主要可以分为master(任务分配/故障感知/负载均衡)、Worker(任务执行/任务监控/任务管理)、分布式协调(etcd等存储元数据)、任务仓库(存储任务的实现比如类或者接口)等几部分 , 从大的部分又可以切分为两个部分管控端(分布式协调/master/仓库)、执行端(Worker) , 传统的任务系统大概就是这样
通常复杂的就是如何在master如何做任务的负载均衡、任务的快速完成、依赖等管控功能 , 其次就是如何在worker端实现一个牛x的引擎 , 可以支持各种不同任务的执行环境和类型的执行1.2基于Pod的任务载体
文章图片
k8s中的最小单元调度是Pod , 同样的job控制器调度的最小单元也是Pod,Pod里面包含容器 , 以容器为载体k8s屏蔽了传统worker模块的任务执行环境与实现两个部分 , 只需要添加一些配置数据 , 对应的Pod就可以完成对应的任务的执行1.3简化的调度层
在k8s中Pod通常被定义为一个不稳定的单元 , 即k8s并不保证你的pod在被调度到某一台机器后就会一直的稳定运行 , 直到这台机器下线 , 这与传统的系统都不太一样 , 基于该特点 , Job调度器的调度层其实也是一种面向于终态的设计 。
大概就先介绍这些 , 接下来我们去分析k8s中job的核心实现机制2.核心实现
Job控制器的核心实现有几个关键点:并行粒度、完成状态、并行策略、并行模式、删除策略 , 记住这些关键点 , 我们来一一剖析2.1并行粒度
【Java架构师技术栈分享:request body读取流程详解,nginx】并行的粒度是指的针对同一任务可以同时有多少个并行的Pod即同时运行的Pod , Job控制器会根据用户设定的并行粒度确定需要同时运行的Pod2.2完成状态
在一些批处理调度的系统里面可能会通过数据分片后 , 等待所有分片的任务都完成后 , 来确定任务的完成状态 , 但是在k8s中Job控制器是一个通用的实现,而且调度层本身也并不关注调度任务的具体数据
文章图片
所以在k8s中里面其实是通过Completion的和backoffLimit来完成状态转移的 , 即通过Completion来确定需要等待的Pod的完成的数量 , 而通过backoffLimit确定到底可以允许失败重试的次数 , 确定重试多少次就认为任务失败了2.3并行模式
在k8s的job控制器模式介绍中提到四种并发模式 , 那实现上是不是真的有四种模式呢 , 答案是否定的 。 可以说k8s的job控制器根本也就不关注是那种模式 , 模式是应用层自己的设计 , 而job控制器只负责并行粒度、当前状态、完成状态
这里我们主要分析下ParallelJObwithafixcompletioncount和ParallelJobwithaworkqueue的实现来聊聊Job控制器是如何实现的 , 两者很大的一个区别就是后者不能设置Completions,即不需要设置需要等待多少个Pod完成 , 为什么一个参数的设定就可以实现两者模式呢?
文章图片
答案就是期望的完成数量不同 , 如果Completions不设定 , 则实际上Job控制器发现有任一一个Pod成功并且当前活跃的Pod的数量为0 , 则表示当前任务完成,该模式主要适用于单次的批任务 , 即本次批任务的所有Pod任务都完成 , 通常也意味着本次批任务是有限的集合
而Completions设定为数量则意味着只需要完成指定数量的批任务 , 即任务可能类似于流处理模式 , 本次只期望完成一部分即可 , 即Completions设定数量的任务2.4并行策略
- 「北京头条客户端」科技部:将加大对前沿技术研发的攻关和支持力度
- 『财经涂鸦』三七互娱爆发的秘密:该用技术公司估值模型来看它了
- 2020年你应该关注的8大技术趋势,眺望曙光TVP线上技术闭门会纯享实录
- 十大突破性技术-NMN,叫你如何选择最好的NMN
- CNBC:京东智联云打造欧美企业在华首选技术服务平台
- 鲁信创投■60余家创投机构代表参加新能源与先进制造专场路演活动中国科协科学技术传播中心
- 产业气象站▲固守高端显示技术领先地位,三星、LGD皆弃LCD
- 『接风娱乐』人机对战协作新时期已经来临,提高智能化与人工智能技术趋于结合
- 安卓中国■Optimus技术,联想海外发布新款Legion游戏本,首发Advanced
- #物流指闻#两部门:加快5G技术等在快递业的推广应用