k8s

【k8s系列3】kubernetes(k8s) schedule

2020-10-13  本文已影响0人  鸿乃江边鸟

背景

  随着k8s快来越火热,以及自动部署,自动伸缩等优点,我们今天来探讨一下,基于k8s的backend的调度怎么来实现

组件图

调度系统kubernetes backend组件图.png

组件说明

整个数据流就是消费者-生产者模型

组件 解释
kubernetesClient 跟k8s进行交互,如:任务的提交,杀任务
podsPollingSnapshotSource 从k8s中拉取pod的任务状态,存储到podSnapshotStore
podsWatchSnapshotSource 监控任务的watcher,以获取任务状态,存储到podSnapshotStore
podSnapshotStore pod状态的存储
podState pod内部状态转换
podsSnapshot pod 的状态镜像
taskPodsLifecycleManager 从podSnapshotStore消费pod的状态,以便根据任务的状态进行后续操作

数据流程图

调度系统kubernetes backend流程图.png

流程说明

UML类继承图

调度系统kubernetes backend 类继承图.png

和spark on k8s的区别

因为公司有自己的调度平台,所以主要从调度的粒度来进行对比:
spark on k8s调度的是executor级别的,是粗粒度调度
k8s backend 调度的是job级别,每个job一个pod container,属于细粒度的精准调度

上一篇 下一篇

猜你喜欢

热点阅读