1
Upgrade to latest Restate version
Make sure to upgrade your single-node deployment to the latest Restate version before adding more nodes.
2
Verify that node is running the replicated metadata server
Check that the metadata service is running using the You should see a single member node providing metadata service:If you see the node as unreachable with an error reason of “Unimplemented”, verify that you are running the latest version. The older local metadata server is no longer supported in Restate v1.4.0 and newer.
restatectl
tool.3
Verify that node is running the replicated loglet
The default configuration is cluster-ready. However, if you have explicitly specified server roles in configuration, you should make sure these include the Confirm that cluster configuration uses the replicated loglet as the default log provider.In the default configuration you should expect to see:You can confirm that the type of logs in use by the server using the command:If you have enabled the This command sets the default log provider to
log-server
role. Similarly, if you have explicitly set the loglet provider to be local
, you should remove this. While the local loglet is still supported, the default type is replicated
starting from v1.4.0. If you have a configuration file and would like to make these settings explicit, it should contain the following:restate.toml
log-server
role and left the default provider unset (or set it to replicated
), and still do not see the cluster configuration you can change the cluster log configuration using:replicated
with a default replication of 1
.
As long as you have a single-node deployment, you must set the replication to 1
.
Otherwise, the server will become unavailable because it cannot provision the new log segments.4
Configure snapshot repository
If you plan to extend your single-node deployment to a multi-node deployment, you also need to configure the snapshot repository.
This allows new nodes to join the cluster by restoring the latest snapshot.
restate.toml
5
Create snapshots to allow other nodes to join
For other nodes to join, you need to snapshot every partition because the local loglet is not accessible from other nodes.
Run the following command to create a snapshot for each partition.Note that this also instructs Restate to trim the logs after partition state has been successfully published to the snapshot repository. This ensures that the logs no longer reference historic local loglets that may have existed on the original node.
6
Turn a single-node into a multi-node deployment
To add more nodes to your cluster, you need to start new Restate servers with the same Metadata is critical to the operation of your cluster and we recommend that you run the
cluster-name
and a metadata client with the address of the existing node.restate.toml
metadata-server
role on additional nodes. Make the cluster metadata service resilient to node failures by specifying the full list of metadata servers on all cluster nodes.restate.toml
7
Verify that your cluster consists of multiple nodes
If everything is set up correctly, you should see the new nodes in the cluster status.
8
🎉 Congratulations, you migrated your single-node deployment to a multi-node deployment!
See also
- Try growing your cluster to tolerate node failures