最近更新时间:2023-10-09 20:06:06
Volcano是一个基于Kubernetes的容器批处理平台,旨在为机器学习、深度学习、生物信息学、基因组学等大数据应用提供高性能计算能力。相比于Kubernetes本身的调度和管理能力,Volcano提供了更加专业和高效的任务调度引擎、异构芯片管理和任务运行管理等功能,同时支持CPU、GPU等异构设备的混合调度。Volcano还能够与几乎所有主流计算框架进行无缝对接,如Spark、TensorFlow、PyTorch、Flink、Argo、MindSpore、PaddlePaddle等,为科学计算和大数据分析提供高效、便捷的解决方案。目前金山云容器集群已将Volcano添加至组件管理,欢迎使用。
当集群内安装完Volcano后,如果不指定调度器,集群仍然会使用default scheduler调度Pod。以下提供使用volcano scheduler的方式:
为Pod指定调度器:在pod的yaml中指定spec.scheduerName为volcano
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx2222
labels:
app: nginx
spec:
replicas: 4
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
# 指定调度器为volcano
schedulerName: volcano
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
resources:
limits:
cpu: 1
memory: 100Mi
requests:
cpu: 1
memory: 100Mi
ports:
- containerPort: 80
volcano支持的Pod注解volcano支持的Pod注解:
Pod注解 | 说明 |
---|---|
scheduling.volcano.sh/queue-name: “ |
指定负载所在队列,其中 |
volcano.sh/preemptable: “true” | 表示作业是否可抢占。开启后,认为该作业可以被抢占。取值范围:true:开启抢占。(默认为开启状态)false:关闭抢占 |
验证效果:
kubectl describe po nginx2222-6856d58cd-r2274
纯净模式