这篇文章主要介绍了tkestack/gpu-manager在k8s1.23版本之后的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
异常
在1.25版本的k8s集群中部署gpu-manage时,虽然显示gpu节点上gpu-manage的pod实例都是running状态,但是给pod申领tencent.com/vcuda-memory资源时,却始终找不到有资源的节点。
查看节点的详情时,返回的allocatable
字段中也没有相关资源:
Allocatable:
cpu: 48
ephemeral-storage: 48294789041
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 65291520Ki
pods: 110
System Info:
Machine ID: 50ca20960ea94552bd5ef84a20ce7e47
说明gpu-manager
并没有正确运行。
排查
查看任意gpu-manager的pod日志,可以看到如下异常信息:
rebuild ldcache
launch gpu manager
E0426 06:17:06.729262 2384 server.go:131] Unable to set Type=notify in systemd service file?
E0426 06:17:11.731947 2384 server.go:152] can't create container runtime manager: context deadline exceeded
说明gpu-manager和容器运行时接口通信失败了。
查看异常信息指向的代码:
...
containerRuntimeManager, err := containerRuntime.NewContainerRuntimeManager(
m.config.CgroupDriver, m.config.ContainerRuntimeEndpoint, m.config.RequestTimeout)
if err != nil {
klog.Errorf("can't create container runtime manager: %v", err)
return err
}
klog.V(2).Infof("Container runtime manager is running")
...
可以看到是访问m.config.ContainerRuntimeEndpoint
超时,这个变量的默认值定义在cmd/manager/options/options.go
const (
DefaultDriver = "nvidia"
DefaultQueryPort = 5678
DefaultSamplePeriod = 1
DefaultVirtualManagerPath = "/etc/gpu-manager/vm"
DefaultAllocationCheckPeriod = 30
DefaultCheckpointPath = "/etc/gpu-manager/checkpoint"
DefaultContainerRuntimeEndpoint = "/var/run/dockershim.sock"
DefaultCgroupDriver = "cgroupfs"
)
可以看到这里用的运行时接口是/var/run/dockershim.sock
,但是在k8s1.23版本之后,接口路径已经改为/var/run/cri-dockerd.sock
,所以修改默认之后重新编译即可。
编译
使用make img
既可以用源码的Makefile自动编译打包成新的镜像,但是源码的/home/zp/work/gpu-manager/build/Dockerfile
中的git222
不一定能装上,可以改成git
,另外有一些依赖需要国际上的支持。
编译后的镜像在1.25版本的k8s中可以正常使用。
到此这篇关于tkestack/gpu-manager在k8s1.23版本之后的使用的文章就介绍到这了,更多相关tkestack/gpu-manager在k8使用内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:tkestack/gpu-manager在k8s1.23版本之后的使用方法


基础教程推荐
- Centos7 nginx的安装以及开机自启动的设置 2023-09-22
- P3 利用Vulnhub复现漏洞 - Apache SSI 远程命令执行漏洞 2023-09-10
- Apache CarbonData 1.0.0发布及其新特性介绍 2023-09-11
- Apache Kafka 2.5 稳定版发布,新特性抢先看 2023-09-11
- 为Win2003服务器打造铜墙铁壁的方法步骤 2022-09-01
- 通过StatefulSet部署有状态服务应用实现方式 2022-10-01
- RFO SIG之openEuler AWS AMI 制作详解 2022-12-28
- windows环境下apache-apollo服务器搭建 2023-09-10
- Centos 安装Django2.1 2023-09-24
- Docker容器操作方法详解 2022-11-13