Hi everyone! 
I’m trying to deploy a 3-node Weaviate cluster using the Weaviate binaries and would appreciate some guidance.
My goals:
-
Set up 3 nodes on separate machines
-
Enable replication and high availability
-
Ensure automatic failover if one node goes down
-
Properly configure networking and clustering
-
Use python client to connect
I’ve checked the official docs, but I’m still unclear on the exact steps to bootstrap the cluster and join the nodes.
Could anyone share a step-by-step example, best practices, or tips for deploying a Weaviate cluster using binaries?
Thanks in advance!
hi @shakthi !!
Welcome to our community 
all of that should be doable while using from binary, except:
“Ensure automatic failover if one node goes down”
as this will be k8s/docker job. You may get this setting up something like systemd or supervisord
How far have you got? And how are you setting up your dev/staging environment? 3 virtual machines?
Thanks!
Hi @DudaNogueira , Thanks for the guidance! Before deploying a full cluster, I’m currently running a single Weaviate instance on a remote machine (IP: xx.xx.xx.xxx, port 8080).
-
Using curl from my local machine works fine and returns the expected response.
-
However, when I try to connect using the Python client, I get:
weaviate.exceptions.WeaviateConnectionError: Connection to Weaviate failed. Details: [Errno 113] No route to host
It seems like the Python client cannot reach the Weaviate instance, even though it’s up and responding to curl. Could this be a network / firewall issue or something related to how the client resolves the host?
Currently, this is just a single instance on a remote VM, not yet a multi-node setup.
Appreciate any pointers!
Yeah, this looks like a network issue.
can you paste the entire stack trace from the client? Make sure also to let port 50051 open for GRPC connections. But if that one was blocked the error message would mention it.
Can you try adding skipInitChecks?
Thanks!
Strange. It doesn’t even seems to reach out on weaviate-client code 
How are you initializing the client?
Also, feel free to jump on our public slack and ping me so we can screen share.
Thanks!
I started weaviate with
./weaviate --scheme http --host 0.0.0.0 --port 8080
and client with
client = weaviate.connect_to_custom(
http_host="xx.xx.xx.xx",
http_port=8080,
http_secure=False,
grpc_host="xx.xx.xx.xx",
grpc_port="50051",
grpc_secure=False,
skip_init_checks=True
)
client.close()
and would you mind sharing the link for public slack . . . I could ping you there
Hi! I see you there on our slack 