我正在尝试在 Kubernetes 上部署 MLFlow 服务器,这需要使用 IPv6。之前我在 IPv4 环境中成功使用过它。
在 IPv4 上的现有部署中,我使用以下有效的启动命令:
mlflow server --host 0.0.0.0 --port 8735
对于 IPv6,我将
0.0.0.0
替换为 ::
,这应该是等效的(意思是,接受来自任何地方的传入连接)
mlflow server --host :: --port 8735
然而,这总是会导致这个错误,显然是来自gunicorn。
Error: '' is not a valid port number.
这很令人困惑,因为我已经在命令中指定了端口。
正确的命令是什么样的?
使用方括号将地址括起来。这消除了传递给gunicorn的最终绑定命令中端口中的
::
的歧义。
mlflow server --host [::] --port 8735
MLFlow/Gunicorn 参考:https://github.com/mlflow/mlflow/blob/9df7c92/mlflow/server/__init__.py#L183
bind_address = f"{host}:{port}"