K8S使用GPU

多个pod共享一张GPU

不行。pod在创建的时候请求gpu最低是卡级别,一张显卡只能分配给一个pod。但是一个pod是由多个容器组成的,所以同一个pod的容器可以共享分配给当前pod的所有GPU。

多个docker容器共享一张GPU

可以。通过nvidia-docker启动的容器可以共享一张GPU。因为容器是进程级的程序所以分配GPU可以达到显存级。

K8S对于GPU的资源分配有两个问题

  • GPU无法进行拆分,为POD分配GPU资源的时候,只能整块分配
  • 分配给该POD的GPU即使没有被使用,其他POD也无法再申请

申请GPU资源示例

apiVersion: v1
kind: Pod
metadata:
  name: pod_name
spec:
  nodeName: ml-node2.senses-ai.com #指定有gpu的节点
  containers:
    - name: container_name
      image: image_name
      resources:
        limits:
          nvidia.com/gpu: 2 # 请求分配 2个 GPU,这里只能填整数

你可能感兴趣的:(kubernetes,docker,java,kubernetes,操作系统,多线程)