全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

容器集群中使用Volcano调度器

最近更新时间:2023-10-09 20:06:06

组件介绍

Volcano是一个基于Kubernetes的容器批处理平台,旨在为机器学习、深度学习、生物信息学、基因组学等大数据应用提供高性能计算能力。相比于Kubernetes本身的调度和管理能力,Volcano提供了更加专业和高效的任务调度引擎、异构芯片管理和任务运行管理等功能,同时支持CPU、GPU等异构设备的混合调度。Volcano还能够与几乎所有主流计算框架进行无缝对接,如Spark、TensorFlow、PyTorch、Flink、Argo、MindSpore、PaddlePaddle等,为科学计算和大数据分析提供高效、便捷的解决方案。目前金山云容器集群已将Volcano添加至组件管理,欢迎使用。

使用流程

  1. 登录金山云控制台,进入容器服务
  2. 进入集群内,创建名为volcano-system的命名空间(推荐将volcano资源部署在特定的命名空间,不强制)
  3. 进入容器服务-Helm应用-Helm3内,安装Volcano
    1.png
  4. 填写部署Volcano Helm chart所需参数,关键参数如下:
  • 所在命名空间:推荐选择volcano-system
  • Chart来源:选择Ksyun Helm Chart
  • Chart名称:选择volcano
  • Chart版本:目前提供Volcano 1.7.0版本
    2.PNG
  1. 验证组件部署状态,查看volcano-system命名空间下资源状态(也可进入控制台内查看)
    3.PNG

Volcano scheduler配置

点击查看Volcano scheduler配置

调度器设置

当集群内安装完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

4.png

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈