Official documentation启用GPU支持状态:
特殊的alpha功能门加速器必须设置为true 系统: - feature-gates =" Accelerators = true"。
我无法在整个系统中解码"设置为true"一部分。
我发现kubelet,kube-apiserver和kube-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配置文件设置选项?
答案 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;