嘉宾 | 徐蓓
出品 | CSDN云原生
2022年8月4日,中国信通院、腾讯云、FinOps产业标准工作组联合发起的《原动力x云原生正发声 降本增效大讲堂》系列直播活动第5讲上,腾讯云容器技术专家徐蓓分享了如何通过云原生管理Kubernetes GPU资源。本文整理自徐蓓的分享。
当前Kubernetes GPU使用方式
K8s社区主要通过Extender Resource和Device Plugin方式给为用户提供GPU物理资源支持。
每个GPU厂商都会实现自己的Device Plugin Agent,Agent在底层节点层会将物理卡扫描上报到集群。用户用拓展资源方式在Pod创建时指定需要物理卡的数量,Device Plugin在每个Kubelet节点上做启动,并且调用各个GPU厂商的设备工具,将设备卡资源扫描上报。这是K8s提供的通用方式,但通用方案在支持专用芯片方案上略显不足:
-
在GPU层面,用户在Pod里只能支持申请整卡的方式,不支持共享卡,这会导致单个物理卡资源层面浪费;
-
在集群层面,缺少GPU分配信息,用户很难看到GPU和容器的关联关系;
-
每个GPU的Provider都会实现各自的Device Plugin,在一个集群里面Device Plugin方案增多,从而会变得很复杂。
基于这些问题,我们提出了改进方案:
-
支持整卡分配与GPU共享,以降低客户层面复杂度