Configuring High Availability with Local Launcher in RStudio Workbench#
Overview#
If your intended architecture involves multiple servers for RStudio Workbench, formerly RStudio Server Pro1, and you want to enable Jupyter Notebook/VSCode support without integrating with a resource manager, then you will have to configure local launcher load balancing/high availability (HA). This document provides step-by-step procedures to achieve this architecture.
In this configuration we will:
- Perform regular load balancing for RStudio Workbench servers
- Then, add additional configuration for load balancing the launcher extension
Prerequisites#
- More than one RStudio Workbench server with 1.4 and above
- Postgres database
- NFS share storage
Step 1: Database Configuration#
When running RStudio Workbench in a load balanced configuration, a Postgres database is required. You must create an empty database for RStudio Server to connect to and you must not share this database with other products or services.
Info
The minimum supported PostgreSQL version is 9.5.
-
In all the RStudio Workbench servers in your cluster, update the
/etc/rstudio/database.conf
as:File: /etc/rstudio/database.conf# Note: when connecting to a PostgreSQL database, a default empty RStudio database must first be created! provider=postgresql # Specifies the host (hostname or IP address) of the database host host=localhost # Specifies the database to connect to database=rstudio # Specifies the TCP port where the database is listening for connections port=5432 # Specifies the database connection username username=postgres # Specifies the database connection password. This may be encrypted with the secure-cookie-key. # The encrypted password can be generated using the helper command rstudio-server encrypt-password. # It is strongly recommended that you encrypt the password! password=postgres
Please make sure that this file is exactly the same on all servers. For more information, refer to the Database configuration section of RStudio Workbench Admin guide.
Step 2: Configuring load balancing at server level#
In order to fully load balance this RStudio Workbench cluster, first you need to load balance the servers.
The details for configuring load balancing at the server level is provided in the Load Balancing section of the RStudio Workbench Admin guide.
Step 3: Configuring load balancing at launcher level#
After you have completed load balancing configuration at server level, please perform the following steps across each server instance in the cluster:
-
On all servers, make sure the local launcher section in
/etc/rstudio/launcher.conf
looks exactly the same. One sample configuration is:File: /etc/rstudio/launcher.conf[cluster] name=Local type=Local
-
Create a directory in your NFS shared storage and make
rstudio-server
as the owner:Terminalsudo mkdir -p {NFS-Share}/Local sudo chown rstudio-server {NFS-Share}/Local
Note
If your
server-user
is something other thanrstudio-server
, then please update the above command accordingly. Also, update the command if your cluster name is something other thanLocal
. -
Now on each server in the Workbench cluster:
- Mount the path created above.
- Edit the
/etc/rstudio/launcher.local.conf
to set the scratch-path variable as:
File: /etc/rstudio/launcher.local.confscratch-path={NFS-Share}/Local
-
Each local plugin node must be able to directly connect to the launcher service located on other nodes in the load-balanced cluster. Verify that the default port for the launcher (port 5559) on all servers is listening for incoming requests. You can use a command like this to test:
Terminalcurl -i myip.com:5559/status
Note
If you are using an external load balancer in your architecture for load balancing this RStudio Workbench cluster, then we recommend using sticky sessions so as to maintain the most consistent view of the job state of the cluster.
-
Restart both
rstudio-server
andrstudio-launcher
service on all servers.Terminalsudo rstudio-server restart sudo rstudio-launcher restart
Additional Documentation#
If you are looking for additional information, it can can be found in the Local Launcher Load Balancing section of the RStudio Job Launcher Admin guide.
-
We have renamed RStudio Server Pro to RStudio Workbench. This change reflects the product’s growing support for a wide range of different development environments. Please see our official Announcement and review our FAQ regarding the name change from RStudio Server Pro to RStudio Workbench. ↩