Dash Enterprise Kubernetes

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.

Prerequisite knowledge

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.

Dash Enterprise Kubernetes creates a load balancer as part of its setup. There is no need to create a load balancer manually to access DEK, it takes care of that. In fact, creating a load balancer and changing the routing would likely break the DEK's functionality.

Supported Kubernetes versions

Kubernetes versions up to 1.21 are supported (inclusively). The Kubernetes client version that we install on Dash Enterprise is 1.18.

Set up your cloud infrastructure

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:

pageAmazon Web Services resource prerequisitespageGoogle Cloud Platform resource prerequisitespageMicrosoft Azure resource prerequisites

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.

Troubleshooting NVIDIA RAPIDS GPU node pool setup

When running 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

Configure additional settings (all providers)

  1. 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

  2. In your DNS host, create a CNAME record pointing your Dash Domain Name to your Base Domain Name

  3. Proceed with additional configuration as outlined in Dash Enterprise Kubernetes additional required configuration

Last updated