MLRun 1.2.0(Docker环境)Serving函数部署失败求助
问题:Docker环境下MLRun 1.2.0部署Serving函数遭遇RunError
在Docker环境中使用MLRun 1.2.0版本部署serving函数时,触发RunError错误,完整报错堆栈如下:
RunError Traceback (most recent call last) <ipython-input-20-aab97e08b914> in <module> 1 serving_fn.with_code(body=" ") # adds the serving wrapper, not required with MLRun >= 1.0.3 ----> 2 project.deploy_function(serving_fn) /opt/conda/lib/python3.8/site-packages/mlrun/projects/project.py in deploy_function(self, function, dashboard, models, env, tag, verbose, builder_env, mock) 2307 :param mock: deploy mock server vs a real Nuclio function (for local simulations) 2308 """ -> 2309 return deploy_function( 2310 function, 2311 dashboard=dashboard, /opt/conda/lib/python3.8/site-packages/mlrun/projects/operations.py in deploy_function(function, dashboard, models, env, tag, verbose, builder_env, project_object, mock) 344 ) 345 -> 346 address = function.deploy( 347 dashboard=dashboard, tag=tag, verbose=verbose, builder_env=builder_env 348 ) /opt/conda/lib/python3.8/site-packages/mlrun/runtimes/serving.py in deploy(self, dashboard, project, tag, verbose, auth_info, builder_env) 621 logger.info(f"deploy root function {self.metadata.name} ...") 622 -> 623 return super().deploy( 624 dashboard, project, tag, verbose, auth_info, builder_env=builder_env 625 ) /opt/conda/lib/python3.8/site-packages/mlrun/runtimes/function.py in deploy(self, dashboard, project, tag, verbose, auth_info, builder_env) 550 self.status = data["data"].get("status") 551 self._update_credentials_from_remote_build(data["data"]) -> 552 self._wait_for_function_deployment(db, verbose=verbose) 553 554 # NOTE: on older mlrun versions & nuclio versions, function are exposed via NodePort /opt/conda/lib/python3.8/site-packages/mlrun/runtimes/function.py in _wait_for_function_deployment(self, db, verbose) 620 if state != "ready": 621 logger.error("Nuclio function failed to deploy", function_state=state) -> 622 raise RunError(f"function {self.metadata.name} deployment failed") 623 624 @min_nuclio_versions("1.5.20", "1.6.10") RunError: function serving deployment failed
排查与解决建议
- 检查Nuclio容器状态:MLRun serving函数依赖Nuclio运行时,执行
docker ps查看nuclio相关容器是否正常运行,若未启动则启动对应服务。 - 获取详细部署日志:调用
serving_fn.logs()(替换为你的函数对象名)查看函数部署的具体日志,或直接访问Nuclio控制台查看函数的运行日志,定位具体失败原因(如镜像拉取失败、资源不足、代码语法错误等)。 - 验证函数配置:确认serving函数的基础镜像版本与MLRun 1.2.0兼容,检查资源限制(CPU、内存)是否超出Docker可用资源,环境变量配置是否正确。
- 检查代码有效性:注释或移除
serving_fn.with_code(body=" ")语句(注释说明MLRun >=1.0.3无需此操作),尝试重新部署;后续添加业务代码时需提前本地验证语法正确性。 - 确认版本兼容性:MLRun 1.2.0需搭配对应版本的Nuclio,建议使用Nuclio 1.9.x版本,避免版本不匹配导致部署失败。
内容的提问来源于stack exchange,提问作者GAWADE HARISH HANUMANT
相关产品推荐
相关产品推荐

