Kubernetes队列组件Kueue和Volcano的对比

本文分析了Kueue和Volcano在AI任务队列调度中的设计特点,Kueue支持多租户和命名空间隔离,而Volcano则提供全局资源限制和更多调度策略。两者在资源借用和功能上有所区别,Kueue社区更活跃。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

为什么要有队列组件

队列设计

Kueue队列设计

Volcano队列设计

队列资源申请

Kueue资源申请

对比总结

相同点

不同点

参考


为什么要有队列组件

AI任务队列调度是云原生MLOps中必备的功能。由于原生Kubernetes无法支持机器学习、并行计算等特殊场景的任务调度,因此出现了Kueue和Volcano这些调度组件。举例来说,tensorflow分布式训练中需要一个参数服务器和多个worker功能配合执行,就需要同时保证这n个pod正常执行或者等待,kubernetes原生的调度器是无法做到这些的,需要有队列组件配合tensorflow对应的operator共同来完成该作业。

队列设计

Kueue队列设计

Kueue队列中分为Cluster Queue和Local Queue,Cluster Queue通过Resource Flavor来进行资源范围的选定,可以为同一个Kubernetes集群设置多个Cluster Queue,将集群进行多维度异构划分,下图的用户组队列可以类比为Cluter Queue;每个Cluster Queue中可以定义多个Local Queue,Local Queue中定义命名空间将用户进行划分,下图的用户队列可以类比为命名空间,相当于每个用户属于一个Local Queue(用户队列),每个Local Queue又受他所属的Cluster Queue资源的限制。

Volcano队列设计

Volcano只能对整个Kubernetes集群中的所有资源进行队列限制,无法根据节点标签对资源进行硬隔离,如下图所示,Volcano中的Queue只能对资源大小进行限制,任务会被调度到任一节点上。每个用户属于一个Queue。

队列资源申请

两种队列组件都支持通过资源类别和大小进行队列的定义。

Kueue资源申请

apiVersion: kueue.x-k8s.io/v1beta1

kind: ClusterQueue

metadata:

  name: cluster-queue

spec:

  namespaceSelector: {} # Available to all namespaces

  queueingStrategy: BestEffortFIFO # Default queueing strategy

  resourceGroups:

  - coveredResources: ["cpu", "memory", "nvidia.com/gpu"]

    flavors:

    - name: "default-flavor"

      resources:

      - name: "cpu"

        nominalQuota: 10

      - name: "memory"

        nominalQuota: 10Gi

      - name: "nvidia.com/gpu" 

        nominalQuota: 2

Volcano资源申请

apiVersion: scheduling.volcano.sh/v1beta1

kind: Queue

metadata:

  name: test

spec:

  weight: 1

  reclaimable: false

  capability:

    cpu: 2

    nvidia.com/gpu: 2

对比总结

相同点

1、都支持队列资源的划分

不同点

1、Kueue具备多租户的概念,Volcano不具备此功能

2、Kueue可以用命名空间隔离队列资源,Volcano不具备此功能

3、Volcano支持多种调度策略,Kueue目前应该支持的调度策略较少

4、Kueue是谷歌背书,Volcano是华为背书

5、两者资源借用的方式不同,原理类似

6、Volcano只有一层队列,Kueue有两个层级的队列

7、从代码更新的角度看Kueue社区更加活跃

8、Volcano还支持GPU共享、工作流等功能,功能更加丰富

参考

https://volcano.sh/zh/docs/

Documentation | Kueue

如果大家关注MLOps相关的技术,欢迎大家点赞收藏关注👏👏👏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值