Dash Enterprise now includes support for high-availability clusters hosted on Amazon Web Services, Azure, and Google Cloud Platform. If you are interested in taking advantage of this new feature, please contact the Plotly sales team. Otherwise, if you already have Dash Enterprise Kubernetes enabled on your license, see below for setup instructions.
As of v4.0.0, Dash Enterprise Kubernetes (DEK) comes with support for assigning GPU resources to a scaled app process for RAPIDS CUDA 10.1 workloads. This can be performed via the resources app page within the Dash App Manager, and allows users to scale from 0 to 4 GPUs on an app process.
In order to utilize GPU scaling, your kubernetes cluster must come with the appropriate number of GPUs. Additional instructions have been included in the installation sections below for the supported providers. These additional instructions will be separated out with a NVIDIA RAPIDS GPU heading for the AWS and GCP providers.
Note: The NVIDIA RAPIDS GPU integration is currently not supported on Azure Kubernetes Services.
The below walkthrough can be completed entirely using your cloud provider’s graphical interface with no knowledge of Kubernetes. However, managing and troubleshooting your cluster can be faster and simpler if you are familiar with common management tasks for Kubernetes and your selected cloud provider. For tutorials on common Kubernetes tasks, please consult the official documentation. The official kubectl cheat sheet is also useful as a quick reference for command-line syntax for frequent tasks.
Kubernetes versions up to 1.18 are supported. The Kubernetes client version which we install on DE is 1.18
The below cloud resources must be in place before enabling High Availability mode in the Dash Enterprise Settings. Once you enable High Availability mode, Dash Enterprise will automatically configure the remaining required resources.
Choose a section below to learn about the prerequisite resources for the cloud provider you are using:
Note: When creating new cloud provider resources, you must assign them to a VPC at the time of creation, as you cannot change a VPC assignment after the resource is created. Because this option is very easy to overlook, please carefully review your resource summaries before confirming their creation.
kubectl apply for the plugin with Kubernetes version 1.16 or newer, you may get an error similar to:
error: unable to recognize "https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/1.0.0-beta/nvidia-device-plugin.yml": no matches for kind "DaemonSet" in version "extensions/v1beta1"
If this happens, proceed as follows:
kubectl apply -f \https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/master/deployments/static/nvidia-device-plugin.yml
In your DNS host, create a A record pointing your Base Domain Name (e.g. plotly.your-domain.com) to your compute instance from Step 3a
GCP: create an A record using the instance’s public IP address
AWS: create a CNAME record pointing to the instance’s Public DNS name
Azure: create an A record using the instance’s public IP address
Note that for both providers, you will change this record later while configuring Dash Enterprise settings to enable high-availability mode
In your DNS host, create a CNAME record pointing your Dash Domain Name to your Base Domain Name
Proceed with additional configuration as outlined in Dash Enterprise Kubernetes additional required configuration