I'm trying to deploy MLFlow server on Kubernetes, which requires using IPv6. Previously I was successfully using it in an IPv4 environment.
In my existing deployment on IPv4, I use this startup command which works:
mlflow server --host 0.0.0.0 --port 8735
For IPv6, I swapped 0.0.0.0
with ::
which should be the equivalent (meaning, accept incoming connections from anywhere)
mlflow server --host :: --port 8735
However, this always results in this error, apparently from gunicorn.
Error: '' is not a valid port number.
This is confusing since I already specify the port in the command.
What does the correct command look like?
Use square brackets around the address. This disambiguates the ::
from the port in the final bind command passed to gunicorn.
mlflow server --host [::] --port 8735
MLFlow/Gunicorn ref: https://github.com/mlflow/mlflow/blob/9df7c92/mlflow/server/__init__.py#L183
bind_address = f"{host}:{port}"