Kubernetes GPU支持:如何启用?

时间:2017-07-14 23:49:42

标签: kubernetes

Official documentation启用GPU支持状态:

  

特殊的alpha功能门加速器必须设置为true   系统: - feature-gates =" Accelerators = true"。

我无法在整个系统中解码"设置为true"一部分。

我发现kubeletkube-apiserverkube-controller-manager都有--feature-gates运行时参数。规范声明它们都会监听对配置文件的修改。

有关这些配置文件的位置的任何帮助我都可以启用--feature-gates =" Accelerators = true"选项呢?

我尝试将选项添加到/etc/kubernetes/manifests/kube-apiserver.yaml: 规格:

  containers:
  - command:
    - kube-apiserver
    - -- <...>
    - --feature-gates=Accelerators=true

然而,这导致kube-apiserver停止并且永远不会回来。

最后,我找到了以下解决方法here

  

3.I为Kubeadm配置添加GPU支持,而未初始化群集。必须为群集中的每个节点执行此操作,   即使其中一些人没有任何GPU。

     

sudo vim /etc/systemd/system/kubelet.service.d/<>-kubeadm.conf   因此,使用标志附加ExecStart   --feature-gates =&#34;加速器=真&#34;,所以它看起来像这样:

     

ExecStart = / usr / bin / kubelet $ KUBELET_KUBECONFIG_ARGS [...]   --feature-门=&#34;加速器=真&#34;   3.II重新启动kubelet

     

sudo systemctl daemon-reload sudo systemctl restart kubelet

但是,我认为上述方法并不是Kubernetes开发人员打算如何启用此功能。任何帮助将不胜感激。

[编辑]我能够打开api-server和controller-manager上的选项 - 既没有让所需的gpu结果变得可见。

因此,需要获取此选项的kubelet服务。

问题变成:如何通过kubelet配置文件设置选项?

3 个答案:

答案 0 :(得分:4)

我使用Ubuntu16.04。

Add --feature-gates="Accelerators=true"到文件KUBELET_ARGS中的/etc/kubernetes/kubelet应该没问题。

答案 1 :(得分:1)

如果您使用kops来运行k8s,那么您可以使用以下指令: https://github.com/kubernetes/kops/blob/master/docs/gpu.md

基本上,这归结为编辑群集 kops edit cluster gpu.example.com

添加特定配置,启用gpu处理到kubelet spec: ... kubelet: featureGates: Accelerators: "true"

然后,您需要更新群集并进行滚动更新,以便所有节点都使用新的kubelet配置。

随着群集的推出,您可以检查kublet上是否启用了功能门标志,并使用GPU部署了pod。

答案 2 :(得分:0)

从逻辑上讲,您需要在节点上启用GPU支持。这意味着正确的位置是kubelet或节点配置。

Kube apiserver不适合这个。

一旦启用&#34;节点将自动发现并公开所有Nvidia GPU作为可调度资源。&#34;