无法使用自定义容器 GCP 进行部署

Posted

技术标签:

【中文标题】无法使用自定义容器 GCP 进行部署【英文标题】:Unable to deploy with custom container GCP 【发布时间】:2021-02-12 08:59:49 【问题描述】:

我的图像是 11.4 GB。我正在尝试以下命令:

gcloud beta ai-platform versions create v1 \
  --region=$REGION \
  --model=$MODEL \
  --machine-type=n1-highmem-2 \
  --image=$REGION-docker.pkg.dev/$PROJECT_ID/$REPO_NAME/$IMAGE_NAME \
  --ports=8000 

它失败了:

Error: model server never became ready. Please validate that your model file or container configuration are valid, Error details: model server never became ready: status: "False" last_transition_time  seconds: 1603932493  reason: "ContainersNotReady" message: "containers with unready status: [online-prediction-be-test85b70d-v1fb1b0606]" type: "ContainersReady"

即使我可以使用 docker run 在本地运行映像。我需要改变什么?

当我在未指定区域且详细程度设置为 DEBUG 的情况下运行时,我得到:

RecursionError: maximum recursion depth exceeded while calling a Python object
ERROR: gcloud crashed (RecursionError): maximum recursion depth exceeded while calling a Python object

The Python stack trace is massive (last couple of lines):
  File "/googlecloudsdk/core/log.py", line 484, in ShowStructuredOutput
    show_messages = properties.VALUES.core.show_structured_logs.Get()
  File "/googlecloudsdk/core/properties.py", line 2380, in Get
    value = _GetProperty(self, named_configs.ActivePropertiesFile.Load(),
  File "/googlecloudsdk/core/properties.py", line 2679, in _GetProperty
    value = _GetPropertyWithoutDefault(prop, properties_file)
  File "/google-cloud-sdk/lib/googlecloudsdk/core/properties.py", line 2711, in _GetPropertyWithoutDefault
    value = _GetPropertyWithoutCallback(prop, properties_file)
  File "/google-cloud-sdk/lib/googlecloudsdk/core/properties.py", line 2741, in _GetPropertyWithoutCallback
    for value_flags in reversed(invocation_stack):

【问题讨论】:

您可以尝试删除--region 标志吗?然后将--verbosity 添加到 debug 模式以获得有关错误的更详细信息。 【参考方案1】:

无法从您收到的此错误消息中理解任何内容,但是, 我猜 gcloud 无法对您的容器运行健康检查, 你能指定它:--health-route 看看吗?

【讨论】:

这不是答案。请使用 cmets 功能。 @SidKwakkel 不要认为他有评论的声誉。【参考方案2】:

请在您的 http web 服务器中指定健康路由,并在上传模型时包含--container-health-route=/healthz。例如,如果您使用 Flask 网络服务器,请确保在您的 Flask 应用程序中添加以下内容。

@app.route('/healthz')
def healthz():
    return "OK"

Vertex AI 或 google ai 平台要求您在 http 网络服务器中指定健康检查例程。详细需求请参考this。

【讨论】:

以上是关于无法使用自定义容器 GCP 进行部署的主要内容,如果未能解决你的问题,请参考以下文章

无法在 GCP AI 平台上部署 CNN 模型

部署到 Google Cloud Run 时 Docker 容器无法启动

无法使用自定义容器在 Google AI Platform 上加载动态库 libcuda.so.1 错误

“一键部署” GCP 功能

无法将自定义 Mule 连接器部署到 Anypoint Exchange

无法使用自定义网络启动 GKE(Google 容器引擎)集群