






















总结摘要
本文深入探讨了在 Kubernetes(特别是 Rancher 管理的集群)中集成 GPU 资源的技术路径与业务价值。文章从 GPU 与云原生结合的优势出发,系统梳理了其在深度学习、科学计算、视频处理等行业的典型应用场景,并重点介绍了基于 gpushare-device-plugin 和 scheduler extender 的 GPU 共享调度方案,包括在 Rancher/RKE 环境下的完整部署配置流程。同时,总结了生产环境中关于驱动兼容性、资源隔离、数据本地化、监控告警等关键最佳实践,为构建高效、稳定、可扩展的 GPU 云原生平台提供实战参考。
GPU与Kubernetes的组合,正开启云计算一个崭新的高性能计算时代。
结合Kubernetes弹性调度与GPU强大算力,各类人工智能、科学计算等工作负载,将迎来前所未有的性能提升、资源效率和故障容错能力。让我们一起乘坐这辆高速计算之车,开启云原生应用的新纪元!
结合Kubernetes环境下GPU的独特魅力,您可以在计算密集型任务中实现更高的性能、更灵活的资源管理和更低的运维成本。
🚀弹性伸缩: 应用可以根据实际需求弹性扩展或收缩GPU数量,极大提升了训练任务的并发能力。这意味着您可以更快地完成大规模的训练作业,从而加快创新和决策的速度。
⚡️ 秒级调度: Kubernetes原生支持GPU调度,根据集群资源情况灵活调度GPU,瞬间满足计算需求,省去了人工分配的麻烦。您的任务可以立即启动,节省了宝贵的时间。
🛡高可用性: 应用运行多副本,一旦个别节点故障,Kubernetes会自动重调度,保证服务不中断。这为关键业务应用提供了更高的可靠性和稳定性。
💲节省成本: 根据实际负载弹性使用GPU,而不是固定分配,大大提升GPU利用率,降低成本。您可以更加高效地使用硬件资源,优化资源投资回报。
结合Kubernetes的调度与弹性,GPU的算力可以被充分发挥,为各种计算密集型任务提供强大支持。
Kubernetes为GPU创造了一个灵活、高效、可靠的运行环境。下面介绍几大典型的应用场景,突出GPU结合Kubernetes在不同行业中带来的优势和好处:
🚗 汽车行业: 在汽车行业中,使用深度学习训练自动驾驶算法,进行道路标识识别、车道线检测、前车距离测量、行人和障碍物识别等。GPU强大的并行处理能力可以加速模型训练,使用真实道路场景数据进行持续优化,大幅提升自动驾驶的环境感知和判断能力。这使得自动驾驶技术更加安全和可靠。

🏥 医疗行业: 利用基于深度学习的图像识别模型,对病人CT、MRI等扫描图像进行高效自动分析,实现病变区域检测、肿瘤识别、心血管疾病诊断等功能。相比人工检查,可显著提高检查效率和诊断准确率。医院可以利用存量影像资料训练和优化算法模型,为患者提供更快速、准确的诊断结果。

🏦 金融行业: 金融机构可利用GPU集群进行高频交易、投资组合优化、风险建模等工作负载,分析处理海量市场数据,并使用深度学习进行异常交易检测。相比CPU,GPU的并行计算能力可以极大缩短处理时间和提高交易速度,使得金融机构能够更快地做出决策并获取竞争优势。在金融行业,人工智能和机器学习算法被广泛应用于风险管理、反欺诈、信贷评估、客户服务等方面。通过在容器环境中使用GPU,金融客户可以加速模型训练和推断推理,提高算法的准确性和效率。这有助于客户更好地理解市场趋势、优化决策,并改进风险控制和客户体验。

🔋 国家电网: 通过大规模稳态仿真分析电网的负载流和故障情况,制定优化运维方案,提高供电可靠性。并行GPU计算极大缩短了仿真时间,有助于及时响应电力市场的变化。这为电力行业提供了更可靠的供电方案和更高的运维效率。

🏭 工业制造业: 使用GPU集群进行航空发动机叶片、机身结构的动力学仿真,在设计阶段就可以检验强度和抗震性能。相比进行物理实验和试飞,计算机仿真大幅降低了验证成本和风险。
💼 **量化交易和算法交易:**GPU在容器环境中的应用可以提高金融客户进行量化交易和算法交易的能力。金融量化模型通常需要进行大规模的数据计算和优化,GPU的并行计算能力可以加速这些计算任务,提高交易系统的实时性和稳定性,同时降低交易成本和风险。
🌾 农业服务: 建立基于GPU的作物生长仿真模型,结合气象、土壤等数据,预测未来产量和质量。还可以模拟不同种植方案的效果。这有助于制定精确的种植策略,提升农业生产效率。


🎥 媒体制作:利用GPU视频编解码器,可快速处理高清视频素材的剪辑、转码等工作,显著提升媒体制作的效率。同时也可应用于在线视频 conference的实时转码。
🔭 天文研究:天文学家需要分析来自望远镜和探测器的海量影像,进行天体检测和识别。GPU集群可大幅加速图像处理流程,助力新天体和物理现象的发现。
💼 证券交易:为确保高频交易的稳定性,证券交易所需要GPU加速的分布式计算来实时处理大批量订单数据。相比CPU,GPU提供了超高的并发计算能力,可以做到毫秒级别的低延迟处理。
🏥 **医学影像处理:**医疗行业需要大量的影像数据处理,如CT扫描、MRI等。通过在容器环境中使用GPU,可以加速医学图像的分析和处理,例如图像重建、分割、配准等,从而提高医生对患者的诊断准确性和速度。
GPU作为高性能计算的加速器,可以大大提升机器学习、深度学习等工作负载的执行效率。但是如何在Kubernetes中合理使用GPU,使其发挥最大效用?
下面我们总结了多次现网实施经验,给准备引入GPU的Kubernetes用户一些建议。
不同的GPU型号 becu如T4,V100,A100等,都有各自的优化方向,比如浮点计算强度、内存带宽等。客户应根据自己的应用类型选购合适的GPU:
混合部署不同的GPU,可以更好满足不同需求,提高资源利用率。

在Kubernetes生产环境中使用GPU,还需要注意以下几点:


GPU上下文切换和数据传输会拖慢应用性能,客户应该:


我们话不多说,直接上实战。
共享GPU的实现主要由两个服务组成:gpushare-scheduler-extender及gpushare-device-plugin
⾸先需要在集群中安装gpushare-scheduler-extender服务,离线部署场景下,需要提前将容 器镜像下载好。
| |
使⽤GPUshare⽅案需要为集群中的scheduler组件增加调度配置⽂件,不同的Kubernetes版 本有不同的配置⽅式:
以下配置调度⽂件基于Rancher或RKE集群的配置⽅式进⾏描述
| |
将配置⽂件放到所有master节点上的某个⽬录下,如我将配置⽂件放在master节点 的 /root/gpushare-scheduler-extender/config 下
⽂件准备完成后,就可以去Rancher上配置相关的集群参数,在左侧导航栏⽬中点击【集群管 理】,然后找到相应集群并点击【编辑配置】
在集群编辑⻚⾯中,选择使⽤【编辑YAML】,在yaml中配置scheduler服务,示例如下:
| |

配置完成后会触发Rancher下集群的update更新,后续操作等待更新完成后再进行。
完成kube-scheduler服务配置后,还需要安装device-plugin服务,此服务主要是⽤来发现节 点gpu资源并上报k8s
GPUshare主要通过节点Label来激活使⽤,⾸先需要为节点打上 gpushare=true 的Label, 使⽤Rancher的场景下可以直接在UI上进⾏调整

| |
为节点配置好共享标签后,会发现节点将⾃动运⾏ gpushare-device-plugin-ds 服务,因为 此服务中有nodeSelector配置,将⾃动运⾏在具备 gpushare=true 标签的节点,此时我们在 集群中查看节点的信息时会发现节点中上报了相关的gpu信息:

可以看到节点中增加了两种Resource, aliyun.com/gpu-count 代表了节点上有⼏张GPU 卡, aliyun.com/gpu-mem 代表了节点上所有GPU的显存空间,在部署需要使⽤GPU的服务 时,编排⽂件中申明相应资源即可,如:


使⽤显存切分GPU的话,就可以在显存空间的基础上部署多个服务,如⼀张7G显存 的GPU卡可以部署7个是⽤1G显存的服务,以此类推,实现1张卡⽀持多个应⽤服务
随着技术的进一步成熟,GPU与Kubernetes的融合将赋能更多关键任务的实现,如实时语音翻译、智能对话、个性化推荐等,让人工智能走得更远、走得更快!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。