GKE 中的 GPU 部署:tensorflow_model_server:加载共享库时出错:/usr/lib/x86_



我正在尝试在 GKE 上部署一个模型,使用 GPU 提供张量流模型。我用 docker 创建了一个容器,它在云虚拟机上运行良好。我正在尝试使用 GKE 进行扩展,但存在部署并出现上述错误。

我创建了只有 1 个节点的 GKE 集群,带有一个 GPU(Tesla T4)。我根据文档安装了驱动程序

据我所知,它似乎很成功(一个名为nvidia-driver-installer-tckv4的 pod 已添加到节点的 pods 列表中,并且它正在运行没有错误)

接下来,我创建了部署:

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,容器退出并在日志中出现上述错误。

我还尝试将操作系统从cos切换到ubuntu,并从文档中运行一个示例

我安装了上面的驱动程序,这次是用于 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 文档。

好的,我认为文档对此还不够清楚,但似乎缺少的是LD_LIBRARY_PATH环境变量中包含/usr/local/nvidia/lib64。 以下 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 文档中的相关部分

最新更新