k8s与GPU

为什么要用k8s管理以GPU为代表的异构资源?

  • 加速部署:通过容器构建避免重复部署机器学习复杂环境
  • 提升集群资源使用率: 统一调度和分配集群资源
  • 保障资源共享:利用容器隔离异构设备,避免互相影响

如何利用容器运行GPU程序

  • 构建支持GPU容器镜像
  • 利用docker run 将改镜像运行起来,并把GPU设备和依赖库映射到容器中

如何准备GPU容器镜像

  • 直接到dockerhub使用官方深度学习容器镜像
    简单 便捷 安全 可靠 如 TensorFlow
  • 基于Nvidia 的CUDA镜像基础构建
    官方镜像无法满足需求时 需要定制修改
image.png

device plugin的工作机制

  • 资源的上报和监控


    image.png
  • Pod的调度和运行


    image.png

device plugin 机制的缺陷

  • 设备调度发生在kubelet层面,缺乏全局调度视角
  • 资源上报信息有限导致调度精度不足
  • 调度策略简单,并且无法配置,无法应对复杂需求

https://www.bilibili.com/video/BV1BJ411i7Yo?from=search&seid=8227645815944614357

你可能感兴趣的:(k8s与GPU)