Dash Enterprise Kubernetes additional required configuration

First, configure your Server Manager Settings as for Dash Enterprise Single Server (Configure basic settings). Once that is complete, continue as below.

Configure external services and enable High Availability for Dash

External Databases

Under "External Databases":

1 - Check Use External Postgres Database and fill out the fields as below:

1.1 - Postgres DB Host

AWS
GCP
Azure
AWS

The Endpoint of your Postgres instance (from your RDS instance’s details)

GCP

The IP address of your Postgres instance

Azure

The “Server name” from the instance page on Azure Portal

1.2 - Postgres DB port: 5432 (default)

1.3 - Database User:

AWS and GCP
Azure
AWS and GCP

postgres (default)

Azure

“Admin username” from the instance page on Azure Portal

1.4 - Database Password: whatever was set for the Database User user upon creation

1.5 - Authentication Database Name: dashauth

1.6 - Dash Deployment Server Database Name: dash_deployment_server

2 - Check Use External Redis Database and fill out the fields as below:

2.1 - Redis Host

AWS
GCP
Azure
AWS

The Primary Endpoint of your Redis cluster

GCP

the IP address of your Redis instance

Azure

The Hostname of the redis instance (from the instance page on Azure Portal)

2.2 - Redis Port: 6379 (default)

2.3 - Access Key (Optional):

AWS and GCP
Azure
AWS and GCP

Can be left blank

Azure

Primary access key from the “Access Key” section of the instance’s page on Azure Portal

2.4 - Celery Redis Database Number: caches data related to Celery and task queues; default 0 (but can be any number from 0-16)

2.5 - Dash Deployment Server Database Number: caches data related to Dash Deployment Server user sessions; default 1 (but can be any number from 0-16)

Check Enable High Availability for Dash

If this option is not available in your Server Manager Settings, contact Plotly support for help with your license

Fill out the fields in that section as follows

1 - Select Use Google Kubernetes Engine, Amazon Elastic Kubernetes Service or Azure Kubernetes Service as appropriate for your situation

2 - Docker Registry URL: the URI for the container registry you created. Only use the base DNS name; do not include / or anything after it

3 - Change the Cloud provider-specific settings.

AWS EKS
GCP GKE
Azure Kubernetes Service
AWS EKS
  1. EKS Cluster Name: the Name you input when creating the cluster

    • Retrieve this from the EKS Clusters summary page

  2. EKS Cluster Region: the Location you selected when creating the cluster

    • Retrieve this in the EKS dashboard by clicking on your cluster name and checking the Cluster ARN value

  3. Use internal Network Load Balancer (NLB) for incoming connections: Enabling this option creates the load balancer on a private subnet so that it is not accessible outside the VPC. Prerequisites:

    • For internal load balancers, your Amazon EKS cluster must be configured to use at least one private subnet in your VPC

    • The private subnet should have correct tags as per this guide​

GCP GKE
  1. GKE Cluster Name: the Name you input when creating the cluster

  2. GKE Cluster Zone: the Location you selected when creating the cluster

  3. This information is available in the GCP console’s GKE Clusters summary

Azure Kubernetes Service
  1. Cluster Name: The Name you input when creating the cluster.

  2. Resource Group: The Resource Group under which the cluster was created.

4 - Max pod lifetime in seconds: the default is fine for most purposes

  • Configure this to a lower value if you find yourself frequently updating configuration settings and need to flush pods with the stale configuration

    • This can be manually accomplished by scaling deployments to 0 and back up as required for your needs

Save the settings, then return to the Dashboard and click "Stop", then "Start"**

Update base domain DNS record to use the load balancer IP

1 - Retrieve the external IP for your loadbalancer

AWS
GCP
Azure
AWS

Go to EC2 > Load Balancers, find the load balancer associated with your VPC, and copy its DNS name

GCP

Go to Kubernetes Engine > Services & Ingress and locate the Endpoint value for dds-elb-service.

Azure

Go to Load Balancers, find the load balancer named kubernetes belonging to the resource group and cluster name created earlier and locate the “Public IP Address” from the load balancer’s page on Azure Portal. If there are multiple IP addresses attached to the load balancer, choose the one which has ports: 80, 443, 3022 and 8800 exposed in the rules.

2 - In your DNS provider, update your existing Plotly Base Domain Name record to use the load balancer address

GCP
AWS
GCP

Update the A record to point to the load balancer’s IP address

AWS

Update the CNAME record to point to the load balancer’s DNS name