Troubleshooting NFS access using Kubernetes & Workbench

Follow

Pre-requisites

  • RStudio Workbench Server
  • NFS server
  • RStudio Workbench License with Launcher enabled
  • Kubernetes Cluster

 

Assumptions

Workbench

We assume that you have an instance of RStudio Workbench running & configured as per the below guide:

https://docs.rstudio.com/rsw/integration/launcher-kubernetes/

 

Firewall

From there, it is important to have your RStudio Workbench instance able to access your NFS share via the appropriate inbound firewall rules on the NFS share's firewall. Furthermore, it is important to have your Kubernetes cluster able to access your NFS share via its relevant inbound firewall rules also.

 

AWS Access (optional - only if using EFS)

Ensure that you have command-line access to the AWS console to access your AWS resources. You can use the AWS CLI tool through your terminal to verify this. You can run the command below to confirm if you are correctly connected to your AWS account:

aws sts get-caller-identity

You must also specify the name & region of your EKS cluster:

aws eks --region xx-xxxx-x update-kubeconfig --name xxxxxxxx

For example:

aws eks --region us-east-1 update-kubeconfig --name Rstudio-EKS

It also helps to set your namespace to the default namespace that you will be using:

kubectl config set-context --current --namespace=NAMESPACE

For example:

kubectl config set-context --current --namespace=rstudio

 

Troubleshooting

We also assume that you have been through our documentation on troubleshooting Kubernetes as below and are able to launch a test pod:

https://support.rstudio.com/hc/en-us/articles/4416621416343

 

Performing actions within the launched pod

If you're able to launch a pod, then your RStudio Workbench server is able to communicate with your Kubernetes cluster via the Kubernetes API - This is a good sign.

From within the pod, we can run some connectivity tests to see the type of access the pod has with your environment & resolve any NFS issues.

Firstly, we can check the network connectivity from within your pod. You will be made a root user within your pod. From there, we can update the pod & install Nmap:

 

Ubuntu/Debian

apt-get update
apt-get install nmap

Red Hat/CentOS

yum update
yum install nmap

 

Now that we have nmap installed, we can run some connectivity tests to our NFS share:

nmap <nfs dns name or ip here> -p 2049

For example:

nmap 192.168.1.5 -p 2049
nmap dns.rstudio.com -p 2049

This is a simple check which will attempt to access our NFS server on the NFS port (2049) to see if it's open. I'd recommend checking the DNS name first as best practice, but if this fails, try the IP address of your NFS server in case there may be a DNS issue. If successful, the output should look something like this:

root@rstudiotestpod:/# nmap 192.168.1.5 -p 2049
Starting Nmap 7.80 ( https://nmap.org ) at 2021-12-22 04:05 UTC
Nmap scan report for dns.rstudio (192.168.1.5)
Host is up (0.0089s latency).

PORT STATE SERVICE
2049/tcp filtered nfs

Nmap done: 1 IP address (1 host up) scanned in 0.37 seconds

Now that we've confirmed connectivity to our NFS share, we should be able to launch a session from the RStudio Workbench GUI.

 

Support Ticket

If you still have issues after completing the above, you can always lodge a support ticket, where our group of friendly, and incredibly knowledgeable staff can assist with any issues that you may be having. You can submit a ticket here:

https://support.rstudio.com/hc/en-us/requests/new

 

Comments