调度 GPU
特性状态:
Kubernetes 支持对若干节点上的 GPU(图形处理单元)进行管理,目前处于实验状态。
本页介绍用户如何使用 GPU 以及当前存在的一些限制。
Kubernetes 实现了 以允许 Pod 访问类似 GPU 这类特殊的硬件功能特性。
作为集群管理员,你要在节点上安装来自对应硬件厂商的 GPU 驱动程序,并运行来自 GPU 厂商的对应设备插件。
一旦你安装了插件,你的集群就会暴露一个自定义可调度的资源,例如 amd.com/gpu
或 nvidia.com/gpu
。
你可以通过请求这个自定义的 GPU 资源在你的容器中使用这些 GPU,其请求方式与请求 cpu
或 时相同。 不过,在如何指定自定义设备的资源请求方面存在一些限制。
- GPU 只能在
limits
部分指定,这意味着:- 你可以同时指定 和
requests
,不过这两个值必须相等。 - 你不可以仅指定
requests
而不指定limits
。
- 你可以同时指定 和
以下是一个 Pod 请求 GPU 的示例清单:
例如:
这个标签键 只是一个例子;如果你愿意,可以使用不同的标签键。
如果你在使用 AMD GPU,你可以部署 , 它是一个 控制器, 会自动给节点打上 GPU 设备属性标签。目前支持的属性:
- 设备 ID (-device-id)
- VRAM 大小 (-vram)
- SIMD 数量(-simd-count)
- 计算单位数量(-cu-count)
- 固件和特性版本 (-firmware)
使用了 Node Labeller 的时候,你可以在 Pod 的规约中指定 GPU 的类型: