作者: 张佐玮 李涛

2022 年 4 月,阿里云原生混部体系 Koordinator 宣布正式开源。经过了几个月的迭代,Koordinator 现在现已连续发布了 4 个版别,能够有用协助企业客户改进云原生作业负载运转的功率、安稳性和核算本钱。

昨日(6 月 15 日),在阿里巴巴云栖直播间中,来自 Koordinator 社区的张佐玮(佑祎) 、李涛(吕风)两位技能专家从项意图架构和特性动身,分享了 Koordinator 是如何应对混部场景下的应战,特别是进步混部场景下作业负载的运转的功率和安稳性,以及对后续技能演进的考虑与规划。咱们也将本次直播的中心内容进行了收拾,期望能给咱们带来一些深化的启发。

点击链接,当即查看直播回放!

yqh.aliyun.com/live/detail…

重视阿里云云原生公众号,后台回复【0615】获取完整 PPT

混部技能的介绍和开展

混部的概念能够从两个视点来了解,从节点维度来看,混部便是将多个容器布置在同一个节点上,这些容器内的运用既包含在线类型,也包含离线类型;从集群维度来看,混部是将多种运用在一个集群内布置,经过预测分析运用特性,完成事务在资源运用上的错峰填谷,以达到进步集群资源运用率的效果。

依据以上的了解,咱们就能够明确混部需求处理的目标问题以及技能计划。本质上,咱们施行混部的初衷是源自对数据中心资源运用功率的不懈追求。埃森哲报告显现,2011 年公有云数据中心的机器运用率平均不到 10%,意味着企业的资源本钱极高,而另一方面跟着大数据技能的开展迅速,核算作业对资源的需求越来越大。事实上,大数据经过云原生方法上云已成为了必然趋势,据 Pepperdata 在 2021 年 12 月的调查报告,适当数量的企业大数据渠道现已开端向云原生技能迁移。超过 77% 的受访者反应估计到 2021 年底,其 50% 的大数据运用将迁移到 Kubernetes 渠道。于是,选择批处理类型使命与在线服务类型运用混合布置,就水到渠成的成为了业界通用的混部计划选型。公开数据显现,经过混部,相关技能抢先企业的资源运用率得到了大幅进步。

面临混部技能,在具体重视的问题上,不同人物的办理人员会有各自的侧重点。

关于集群资源的办理员来说,他们期望能够简化对集群资源的办理,完成对各类运用的资源容量,分配量,运用量的清晰洞察,进步集群资源运用率,以达到下降 IT 本钱的意图。

关于在线类型运用的办理员来说,他们则更重视容器混合布置时的互相干扰的,由于混部会更简略发生资源竞争,运用呼应时刻会呈现长尾(tail latency),导致运用服务质量下降。

而离线类型运用的办理员更期望混部体系能够供给分级牢靠的资源超卖,满意不同作业类型的差异化资源质量需求。

针对以上问题,Koordinator 供给了以下机制,能够充沛满意不同人物对混部体系的技能需求:

  • 面向混部场景的资源优先级和服务质量模型
  • 安稳牢靠的资源超卖机制
  • 细粒度的容器资源编列和阻隔机制
  • 针对多种类型作业负载的调度才能增强
  • 杂乱类型作业负载的快速接入才能

Koordinator简介

下图展现了 Koordinator 体系的全体架构和各组件的人物分工,其间绿色部分描绘了 K8s 原生体系的各个组件,蓝色部分是 Koordinator 在此基础上的扩展完成。从整个体系架构来看,咱们能够将 Koordinator 分为中心管控和单机资源办理两个维度。在中心侧,Koordiantor 在调度器内部和外部别离都做了相应的扩展才能增强;在单机侧,Koordinator 供给了 Koordlet 和 Koord Runtime Proxy 两个组件,担任单机资源的精密化办理和 QoS 保证才能。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

Koordinator 各组件的详细功用如下

  • Koord-Manager

    • SLO-Controller:供给资源超卖、混部 SLO 办理、精密化调度增强等中心管控才能。
    • Recommender:围绕资源画像为运用供给相关的弹性才能。
    • Colocation Profile Webhook:简化 Koordinator 混部模型的运用,为运用供给一键接入的才能,主动注入相关优先级、QoS 装备。
  • Koord extensions for Scheduler:面向混部场景的调度才能增强。

  • Koord descheduler:供给灵敏可扩展的重调度机制。

  • Koord Runtime Proxy:作为 Kubelet 和 Runtime 之间的代理,满意不同场景的资源办理需求,供给插件化的注册结构,供给相关资源参数的注入机制。

  • Koordlet:在单机侧担任 Pod 的 QoS 保证,供给细粒度的容器指标收集,以及干扰检测和调理战略才能,并支撑一系列的 Runtime Proxy 插件,用于精密化的阻隔参数注入。

在 Koordinator 的规划模型中,一个中心的规划概念便是优先级(Priority),Koordinator 界说了四个等级,别离是 Product、Mid、Batch、Free ,Pod 需求指定恳求的资源优先级,调度器会依据各资源优先级总量和分配量做调度。各优先级的资源总量会受高优先级资源的 request 和 usage 影响,例如已恳求但未运用的 Product 资源会以 Batch 优先级再次分配。节点各资源优先级的具体容量,Koordinator 会以规范的 extend-resource 形式更新在 Node 信息中。

下图展现了一个节点各资源优先级的容量状况,其间黑色的直线 total 代表了节点的物理资源总量,红色折线代表了高优先级 Product 的实在运用量,蓝色折线到黑色直线之间反映了 Batch 优先级的资源超卖改变状况,能够看到当 Product 优先级处于资源耗费的低谷时,Batch 优先级能够取得更多的超卖资源。事实上,资源优先级战略的激进或保守,决议了集群资源的超卖容量,这点咱们也能够从图中绿色直线对应的 Mid 资源优先级超卖状况分析看出。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

如下表所示,Koordinator 以 K8s 规范的 PriorityClass 形式对各资源优先级进行了界说,代表 Pod 恳求资源的优先级。在多优先级资源超卖状况下,当单机资源紧张时,低优先级 Pod 会被限制或驱赶。此外,Koordinator 还供给了 Pod 等级的子优先级(sub-priority),用于调度器层面的精密化操控(排队,抢占等)。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

Koordinator 的规划中另一个中心的概念是服务质量(Quality of Service),Koordinator 将 QoS 模型在 Pod Annotation 等级进行了扩展界说,它代表了 Pod 在单机运转过程中的资源质量,首要表现为运用的阻隔参数不同,当单机资源紧张时会优先满意高等级 QoS 的需求。如下表所示,Koordinator 将 QoS 全体分为 System(体系级服务),Latency Sensitive(延迟灵敏性的在线服务),Best Effort(资源耗费型的离线运用)三类,依据运用功用灵敏程度的差异,Latency Sensitive 又细分为 LSE,LSR 和 LS。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

在 Priority 和 QoS 的运用上,二者全体是正交的两个维度,能够排列组合运用。不过受模型界说和实践的需求状况影响,部分排列组合存在约束。下表展现了混部场景中常常运用到的一些组合,其间“O”表明常用的排列组合,“X”表明基本运用不到的排列组合。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

各场景的实践运用举例如下。

  • 典型场景:

    • Prod + LS:典型的在线运用,通常对运用时延要求较高,对资源质量要求较高,也需求保证必定的资源弹性才能。
    • Batch + BE:用于混部场景中的低优离线,对资源质量有适当的忍耐度,例如批处理类型的 Spark/MR 使命,以及 AI 类型的训练使命
  • 典型场景的增强:

    • Prod + LSR/LSE:比较灵敏的在线运用,能够承受牺牲资源弹性而交换更好的确定性(如CPU绑核),对运用时延要求极高。
    • Mid/Free + BE:与“Batch + BE”相比首要区别是对资源质量要求的凹凸不同。
  • 非典型的运用场景:

    • Mid/Batch/Free + LS:用于低优先级的在线服务、近线核算以及AI推理类等使命,这些使命相较于大数据类型使命,它们无法承受过低的资源质量,对其他运用的干扰也相对较低;而相较于典型的在线服务,它们又能够忍耐相对较低的资源质量,例如承受必定程度的驱赶。

Quick Start

Koordinator 支撑多种作业负载的灵敏接入混部,这儿咱们以 Spark 为例,介绍如何运用混部超卖资源。在 K8s 集群中运转 Spark 使命有两种模式:一种是经过 Spark Submit 提交,也便是在本地运用 Spark 客户端直接衔接 K8s 集群,这种方法比较简略方便,不过在全体的办理才能上有所缺少,常用于开发自测;另一种方法是经过 Spark Operator 提交,如下图所示,它界说了 SparkApplication CRD,用于 Spark 作业的描绘,用户能够经过 kubectl 客户端将提交 SparkApplication CR 到 APIServer,随后由 Spark Operator 担任作业生命周期以及 Driver Pod 的办理。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

凭仗 Koordinator 才能的加持,ColocationProfile Webhook 会主动为 Spark 使命的 Pod 注入相关混部装备参数(包含QoS,Priority,extened-resource等),如下所示。Koordlet 在单机侧担任 Spark Pod 在混部后不会影响在线运用功用表现,经过将 Spark 与在线运用进行混部,能够有用进步集群全体资源运用率。

# Spark Driver Pod example
apiVersion: v1
kind: Pod
metadata:
  labels:
    koordinator.sh/qosClass: BE
...
spec:
  containers:
  -  args:
      - driver
...
resources:
        limits:
          koordinator.sh/batch-cpu: "1000"
          koordinator.sh/batch-memory: 3456Mi
        requests:
          koordinator.sh/batch-cpu: "1000"
          koordinator.sh/batch-memory: 3456Mi
...

关键技能介绍

资源超发 – Resource Overcommitment

在运用 K8s 集群时,用户很难精确的评估在线运用的资源运用状况,不知道该怎样更好的设置 Pod 的 Request 和 Limit,因而往往为了保证在线运用的安稳性,都会设置较大的资源标准。在实践生产中,大部分在线运用的实践 CPU 运用率大多数时分都比较低,高的或许也就百分之十几或许二十几,浪费了很多现已被分配但未运用的资源。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

Koordinator 经过资源超发机制收回复用这部分分配但未被运用的资源。Koordinator 依据指标数据评估在线运用的 Pod 有多少资源是能够收回的(如上图所示,标记为 Reclaimed 的部分便是可被收回的资源),这些可收回的资源就能够超发给低优先级的作业负载运用,例如一些离线使命。为了让这些低优先级作业负载方便运用这些资源,Koordinator 会把这些超发资源更新到 NodeStatus 中(如下面所示的 node info)。当在线运用有突发的恳求需求处理时要求运用更多的资源,Koordinator 经过丰厚的 QoS 增强机制协助在线运用拿回这些资源以保证服务质量。

# node info
allocatable:
   koordinator.sh/bach-cpu: 50k # milli-core
   koordinator.sh/bach-memory: 50Gi 
# pod info
annotations:
    koordinator.sh/resource-limit: {cpu: “5k”}
resources:
     requests
         koordinator.sh/bach-cpu: 5k # milli-core
         koordinator.sh/bach-memory: 5Gi

负载均衡调度 – Load-Aware Scheduling

超发资源能够极大的进步集群的资源运用率,但也会凸显集群内节点之间资源运用率不均匀的现象。这个现象在非混部环境下也是存在的,仅仅由于 K8s 原生是不支撑资源超发机制,节点上的运用率往往不是很高,必定程度上掩盖了这个问题。但当混部时,资源运用率会上升到比较高的水位时就暴露了这个问题。

运用率不均匀一般是节点之间不均匀以及呈现局部的负载热门,局部的负载热门会或许影响作业负载的全体运转效果。另一个是在负载高的节点上,在线运用和离线使命之间或许会存在的严峻的资源抵触,影响到在线运用的运转时质量。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

为了处理这个问题, Koordinator 的调度器供给了一个可装备的调度插件操控集群的运用率。该调度才能首要依赖于 koordlet 上报的节点指标数据,在调度时会过滤掉负载高于某个阈值的节点,防止 Pod 在这种负载较高的节点上无法取得很好的资源保证,另一方面是防止负载现已较高的节点持续恶化。在打分阶段选择运用率更低的节点。该插件会依据时刻窗口和预估机制躲避因瞬间调度太多的 Pod 到冷节点机器呈现一段时刻后冷节点过热的状况。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

运用接入办理 – ClusterColocationProfile

咱们在 Koordinator项目开源之初就考虑到,需求下降 Koordinator 混部体系的运用门槛,让咱们能够简略快速的灰度和运用混部技能取得收益。因而 Koordinator 供给了一个 ClusterColocationProfile CRD,经过这个 CRD 和对应的 Webhook ,能够在不侵入存量集群内的组件的状况下,按需针对不同的 Namespace 或许不同的作业负载,一键敞开混部才能,Webhook 会依据该 CRD 描绘的规矩对新创立的 Pod 主动的注入 Koorinator 优先级、QoS 装备和其他混部协议等。

apiVersion: config.koordinator.sh/v1alpha1
kind: ClusterColocationProfile
metadata:
  name: colocation-profile-example
spec:
  namespaceSelector:
    matchLabels:
      koordinator.sh/enable-colocation: "true"
  selector:
    matchLabels:
      sparkoperator.k8s.io/launched-by-spark-operator: "true"
  qosClass: BE
  priorityClassName: koord-batch
  koordinatorPriority: 1000
  schedulerName: koord-scheduler
  labels:
    koordinator.sh/mutated: "true"
  annotations: 
    koordinator.sh/intercepted: "true"
  patch:
    spec:
      terminationGracePeriodSeconds: 30

举个比方,上面是 ClusterColocationProfile 的一个实例,表明一切带有 koordinator.sh/enable-colocation=true 标签的 Namespace 和该 Namespace 下 SparkOperator 作业创立的 Pod 都能够转为 BE 类型的 Pod(BTW:SparkOperator 创立的 Pod 时会增加标签 sparkoperator.k8s.io/launched-by-spark-operator=true 表明这个 Pod 是 SparkOperator 担任的)。

只需求依照如下过程就能够完成混部接入:

$ kubectl apply -f profile.yaml
$ kubectl label ns spark-job -l koordinator.sh/enable-colocation=true
$ # submit Spark Job, the Pods created by SparkOperator are co-located other LS Pods.

QoS 增强 – CPU Suppress

Koordinator 为保证在线运用在混部场景下的运转时质量,在单机侧供给了丰厚的 QoS 增强才能。

首先向咱们介绍 CPU Suppress(CPU 动态限制)特性 。前面向咱们介绍了,在线运用大多时分并不会完全用完恳求到的资源,会有很多的空闲资源,这些空闲资源除了能够经过资源超发给新创立的离线使命运用外,还能够在节点上还没有新的离线使命需求履行时,尽或许的把空闲的 CPU 资源同享给存量的离线使命。如这个图中所示,当 koordlet 发现在线运用的资源空闲,并且离线使命运用的 CPU 还没有超过安全阈值,那么安全阈值内的空闲 CPU 就能够同享给离线使命运用,让离线使命能够更快的履行。因而在线运用的负载的凹凸决议了 BE Pod 总共有多少可用 CPU。当在线负载升高时,koordlet 会经过 CPU Suppress 限制 BE Pod,把同享的 CPU 还给在线运用。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

QoS 增强 – 依据资源满意度的驱赶

CPU Suppress 在线运用的负载升高时或许会频频的限制离线使命,这尽管能够很好的保证在线运用的运转时质量,可是对离线使命仍是有一些影响的。尽管离线使命是低优先级的,但频频限制会导致离线使命的功用得不到满意,严峻的也会影响到离线的服务质量。并且频频的限制还存在一些极端的状况,假如离线使命在被限制时持有内核全局锁等特殊资源,那么频频的限制或许会导致优先级反转之类的问题,反而会影响在线运用。尽管这种状况并不常常发生。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

为了处理这个问题,Koordinator 提出了一种依据资源满意度的驱赶机制。咱们把实践分配的CPU总量 与 期望分配的 CPU 总量的比值成为 CPU 满意度。当离线使命组的 CPU 满意度低于阈值,并且离线使命组的 CPU 运用率超过 90% 时,koordlet 会驱赶一些低优先级的离线使命,开释出一些资源给更高优先级的离线使命运用。经过这种机制能够改进离线使命的资源需求。

QoS 增强 – CPU Burst

咱们知道 CPU 运用率是一段时刻内 CPU 运用的平均值。并且咱们大多数时分都是以一种较粗的时刻单位粒度调查核算 CPU 运用率,这个时分调查到 CPU 运用率的改变是基本安稳的。但假如咱们以较细的时刻单位粒度调查核算 CPU 运用率,能够看到 CPU 运用的突发特征十分显着,是不安稳的。如下图以 1s 粒度调查运用率(紫色)和 100ms 粒度调查的运用率(绿色)比照。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

细粒度数据观测表明CPU 突发和限制是常态。Linux内核中经过 CFS 带宽操控器 cgroup CPU 的耗费,它限制了 cgroup 的 CPU 耗费上限,因而常常会遇到一些突发流量下事务短时刻内被狠狠地 throttle,发生长尾延迟,造成服务质量下降,如下图所示,Req2 由于 CPU 被限制,延期到第 200ms 才得到处理。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

为了处理这个问题,Koordinator 依据 CPU Burst 技能协助在线运用应对突发状况。CPU Burst 允许作业负载在有突发恳求处理运用CPU 资源时,运用日常的 CPU 资源。比方容器在日常运转中运用的 CPU 资源未超过 CPU 限流,空余的CPU资源将会被堆集。后续当容器运转需求很多 CPU 资源时,将经过 CPU Burst 功用突发运用 CPU 资源,这部分突发运用的资源来源于已堆集的资源。如下图所示,突发的 Req2 由于有堆集的 CPU 资源,经过 CPU Burst 功用得以防止被 throttle,快速的处理了恳求。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

QoS 增强 – Group Identity

在混部场景下,Linux 内核尽管供给了多种机制满意不同优先级的作业负载的调度需求,但当一个在线运用和一个离线使命同时运转在一个物理核上时,由于在离线使命都同享相同的物理资源,在线运用的功用不可防止的会被离线使命干扰然后功用下降。Alibaba Cloud Linux 2 从内核版别 kernel-4.19.91-24.al7 开端支撑 Group Identity 功用,Group Identity 是一种以 cgroup 组为单位完成的调度特殊优先级的手段,简略讲,当在线运用需求更多资源时,经过 Group Identity 能够暂时限制离线使命保证在线运用能够快速的呼应。

要运用这个特性比较简略,能够装备 cpu cgroup 的 cpu.bvt_warp_ns 即可。在 Koordinator 里,BE 类离线使命对应装备为 -1,即最低优先级, LS/LSR 等在线运用类型设置为 2,即最高优先级。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

QoS 增强 – Memory QoS

容器在运用内存时首要有以下两个方面的约束:

  • 本身内存限制:当容器本身的内存(含Page Cache)接近容器上限时,会触发内核的内存收回子体系,这个过程会影响容器内运用的内存恳求和开释的功用。
  • 节点内存限制:当容器内存超卖(Memory Limit>Request)导致整机内存不足,会触发内核的全局内存收回,这个过程对功用影响较大,极端状况乃至导致整机反常。

为了进步运用运转时功用和节点的安稳性,Koordinator 引进Memory QoS 才能,为运用进步内存功用。当功用敞开时,koordlet 依据自适应装备内存子体系(Memcg),在保证节点内存资源公正的基础上,优化内存灵敏型运用的功用。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

后续演进计划

精密化 CPU 编列 – Find-grained CPUOrchestration

咱们正在规划和完成精密化 CPU 编列机制。

咱们为什么要供给这个编列机制呢?跟着资源运用率的进步进入到混部的深水区,需求对资源运转时的功用做更深化的调优,更精密的资源编列能够更好的保证运转时质量,然后经过混部将运用率推向更高的水平。

咱们把 Koordinator QoS 在线运用 LS 类型做了更细致的划分,分为 LSE、LSR 和 LS 三种类型。拆分后的 QoS 类型具备更高的阻隔性和运转时质量。经过这样的拆分,整个 Koordinator QoS 语义愈加精确和完整,并且兼容 K8s 已有的 QoS 语义。

并且咱们针对 Koordinator QoS,规划了一套丰厚灵敏的 CPU 编列战略,如下表所示。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

Koordinator QoS 对应的 CPU 编列战略

另外,针对 LSR 类型,还供给了两种绑核战略,能够协助用户平衡功用和经济收益。

  • SameCore 战略:更好的阻隔性,但弹性空间小。
  • Spread 战略:中等的阻隔性,但能够经过其他阻隔战略优化;运用得当能够取得比 SameCore 战略更好的功用;有必定的弹性空间。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

Koordinator 的这套精密化 CPU 编列计划兼容 K8s 已有的 CPUManager 和 NUMA Topology Manager 机制的。也便是说存量集群运用 Koordinator 时不会影响存量的 Pod,能够安全放心的灰度运用。

资源预留 – Resource Reservation

资源预留是咱们另一个正在规划的特性。资源预留能够协助处理资源办理的痛点。例如有时分像咱们熟悉的互联网事务场景,都有十分强的峰谷特征。那么咱们能够在峰值抵达前预留资源保证必定有资源满意峰值恳求。另外像咱们在扩容时或许也会遇到的问题,发起扩容后由于没有资源 Pod 就 Pending 在集群里,假如能在扩容前提早确认是否资源,没资源时加新机器就能有更好的体会。还有像重调度场景,能够经过资源预留保证被驱赶的 Pod 必定有资源能够用,能够极大的下降重调度的资源危险,更安全放心的运用重调度才能。

Koordinator 的资源预留机制不会侵入 K8s 社区已有的 API 和代码。并支撑 PodTemplateSpec,模仿一个Pod 经过调度器找到最合适的节点。并支撑声明一切权的方法支撑 Pod 优先运用预留资源,例如当一个真正的 Pod 调度时,会优先尝试依据 Pod 的特征找到合适的预留资源,不然持续运用集群内空闲的资源。

下面是一个 Reservation CRD 的比方(终究以 Koordinator 社区经过的规划为准)

kind: Reservation
metadata:
  name: my-reservation
  namespace: default
spec:
  template: ... # a copy of the Pod's spec
  resourceOwners:
    controller:
      apiVersion: apps/v1
      kind: Deployment
      name: deployment-5b8df84dd
  timeToLiveInSeconds: 300 # 300 seconds
  nodeName: node-1
status:
  phase: Available
  ...

精密化 GPU 调度 – GPU Scheduling

精密化 GPU 调度是咱们未来期望供给的一种才能。GPU 和 CPU 在资源特征上差异比较大,并且在像机器学习的模型训练场景中,一个训练作业会由于不同的拓扑结构导致不同的功用差异,例如依据机器学习作业界 worker 之间不同的拓扑组合,会得到不同的功用,这不仅体现在集群内节点之间,并且即使单个节点上,GPU 卡之间也由于像是否运用 NVLINK 也会有巨大的功用差异,这让整个 GPU 的调度分配逻辑变的十分杂乱。并且 GPU 和 CPU 的核算使命在集群内混部时,怎样防止两种资源的浪费,也是需求考虑处理优化的问题。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

标准引荐 – Resource Recommendation

后续 Koordinator 还会供给依据画像的标准引荐才能。前面也提到,用户是很难精确评估运用程序的资源运用状况的,Request 和 Limit 到底是什么关系,到底该怎样设置 Request/Limit,关于我这个运用来说哪种组合才是最合适的?常常高估或许轻视 Pod 资源标准,导致资源浪费乃至安稳性危险。

Koordinator 会供给资源画像才能,收集并加工分析历史数据,引荐更精确的资源标准。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

社区建造

现在为止,咱们在最近两个多月发布了四个版别。前面几个版别首要供给了资源超发、QoS 增强的才能,并且还开源了新的组件 koord-runtime-proxy。在 0.4 版别中,咱们开端在调度器上发力,首先开放了负载均衡调度才能。现在 Koordinator 社区正在完成 0.5 版别,在这个版别中,Koordinator 会供给精密化 CPU 编列和资源预留的才能,在之后的规划中,咱们还会在重调度、Gang 调度、GPU 调度、弹性 Quota 等完成一些新的创新。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

十分等待您在运用 Koordinator 积极的反应遇到的任何问题、协助改进文档、修正 BUG 和增加新功用

  • If you find a typo, try to fix it!
  • If you find a bug, try to fix it!
  • If you find some redundant codes, try to remove them!
  • If you find some test cases missing, try to add them!
  • If you could enhance a feature, please DO NOT hesitate!
  • If you find code implicit, try to add comments to make it clear!
  • If you find code ugly, try to refactor that!
  • If you can help to improve documents, it could not be better!
  • If you find document incorrect, just do it and fix that!

此外,咱们还于周二 19:30 至 20:30 筹办了社区定期双周会,欢迎广阔志同道合的同伴增加沟通群了解更多信息。

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

微信群

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

钉钉群

点击此处,当即了解 Koordinator 项目!