我正尝试在具有使用GPU的Tensorflow模型的GKE上部署模型。我使用docker创建了一个容器,它在云VM上运行良好。我正在尝试使用GKE进行扩展,但是部署存在上述错误。
我使用GPU(Tesla T4)创建了只有1个节点的GKE集群。我根据docs
安装了驱动程序据我所知,这似乎是成功的(名为nvidia-driver-installer-tckv4
的pod已添加到节点的pod列表中,并且正在正常运行)
接下来,我创建了部署:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: reph-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: reph
spec:
containers:
- name: reph-container
image: gcr.io/<project-id>/reph_serving_gpu
resources:
limits:
nvidia.com/gpu: 1
ports:
- containerPort: 8500
args:
- "--runtime=nvidia"
然后我运行kubectl create -f d1.yaml,并且在日志中出现上述错误的情况下退出了容器。
我还尝试将os从cos切换到ubuntu并从docs运行示例
这次我为ubuntu安装了上述驱动程序。并应用了从GKE文档中提取的Yaml(仅更改了要消耗的GPU数量):
apiVersion: v1
kind: Pod
metadata:
name: my-gpu-pod
spec:
containers:
- name: my-gpu-container
image: nvidia/cuda:10.0-runtime-ubuntu18.04
resources:
limits:
nvidia.com/gpu: 1
这次我得到的是CrashLoopBackOff,而日志中没有更多内容。
有什么主意吗?我是kubernetes和docker的新手,所以我可能缺少一些琐碎的东西,但我确实尝试坚持使用GKE文档。
答案 0 :(得分:1)
好的,我认为文档尚不十分清楚,但是似乎缺少的是在/usr/local/nvidia/lib64
环境变量中包含LD_LIBRARY_PATH
。
以下yaml文件成功运行:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: reph-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: reph
spec:
containers:
- name: reph-container
env:
- name: LD_LIBRARY_PATH
value: "$LD_LIBRARY_PATH:/usr/local/nvidia/lib64"
image: gcr.io/<project-id>/reph_serving_gpu
imagePullPolicy: IfNotPresent
resources:
limits:
nvidia.com/gpu: 1
requests:
nvidia.com/gpu: 1
ports:
- containerPort: 8500
args:
- "--runtime=nvidia"
这是GKE docs
中的相关部分