《通过 kata 容器在 kubernetes 集群中支持 vGPU.pdf》由会员分享,可在线阅读,更多相关《通过 kata 容器在 kubernetes 集群中支持 vGPU.pdf(18页珍藏版)》请在三个皮匠报告上搜索。
1、通过kata容器在kubernetes集群中支持vGPU 周威 (腾讯IEG)2020/11 目录 GPU虚拟化概述 与kata集成方案 device plugin 开发 原有GPU架构 Kubeletnvidia-device-plugin GPU Pod Pod Pod driver library volume GPUGPU Runtime(RunC) GPU的虚拟化 根据我们的监控数据,很 多情况下用户申请了GPU 资源却并不能将GPU用满, 而GPU作为一种宝贵的计 算资源,如果能通过一些 手段让多个用户共享一块 GPU卡的话无疑能节省很 多成本。现有的GPU虚拟 化方案主要有MPS
2、和GRID 两种 方案方案MPSGRID 原理 容器中的多个cuda进程共享 GPU context,母机上运行 守护进程进行管理 GRID通过vfio技术创建了一个 资源隔离的vGPU,然后将 vGPU分配给vm实例 优势 直接支持RunC容器,改造成 本小 1.成熟稳定,公有云GPU虚拟 化大部分使用该方案 2.支持GPU按资源隔离 缺点 1.无法隔离资源使用率 (Volta+) 2.由于共享了GPU context, 一旦出错会影响所有实例 1. 只支持虚拟机(kvm) 2. 只能按照固定配置进行切分 Why not KubeVirt? 有一个官方提供的vGPU插件 我们希望使用的是容器
3、(随起随停,使用image),而不是VM 业务已经熟悉kubernets的各种workload (pod, deployment.) KubeVirt 中 vGPU需要预先创建,并且无法更改类型 Kata与CRI接 How Kata works? 官方的kata容器并不能直 接支持vGPU,一个原因 是Hypervisor提供了一个 独立的内核空间,所以需 要在这一层集成vGPU驱 动,另一个需求是, vGPU需要一个常驻进程 nvidia-gridd来获取 license Virtual Machine Hypervisor(kvm) Kernel !#!#$ $%modprobe nvidia- drm modeset=1;nvidia-modprobe -u -m resources: limits: 1 securityContext: capabilities: add: -