Kubernetes Deployment
This page describes how to deploy KX Dashboards on Kubernetes.
A Helm chart has been provided for deploying KX Dashboards to a Kubernetes cluster.
Prerequisites
To run within Kubernetes there are a number of pre-requisites:
-
helm must be installed
-
kubectl must be installed
-
Valid KX license (kdb+ or Insights SDK, depending on target environment). You need the source path to your license for this step.
Deploy using Kubernetes quick start
To deploy KX Dashboards, complete the following steps:
Create a k8s secret for the KX license
A valid license is required. The type of license you need depends on whether you are going to integrate KX Dashboards with kdb+ or kdb Insights SDK.
bash
kubectl create secret generic kxi-license --from-file=license=path/to/*.lic

kubectl create secret generic
- Creates a generic Kubernetes secret.-
kxi-license
- The name of the secret. This is used in the Helm chart file described in this step. -
--from-file=license=path/to/*.lic
- The path to your license file .
Generate a KX Downloads Portal bearer token
The following steps explain how to obtain the KX Downloads Portal credentials required to login to the KX Downloads Portal to download the necessary images:
-
Navigate to the KX Downloads Portal.
-
Click Login and enter your email address and click Sign In.
-
Check your email for a message from noreply@kx.com to complete your login to https://portal.dl.kx.com. You can either:
- Click the Login link provided in the email, or
- Copy the verification code from the email and paste it into the login page.
-
Once you are logged in, navigate to Token Management, https://portal.dl.kx.com/auth/token.
-
Click Add New Token.
-
Copy and securely save the Bearer token, it is only shown once.
Information
If you have completed the trial download process on the KX website, use the bearer token provided in your email.
If you do not have credentials to access the KX Downloads Portal , please contact sales@kx.com
This bearer token is used in the next step to provide credentials when adding the Helm rep.
Add a Helm Chart repository
In this step you add a Helm chart repository to enable you to access to the official charts needed to deploy, configure, and manage KX Dashboards consistently across environments.
-
Enter the following command
bash
Copyhelm repo add kxi-repo https://portal.dl.kx.com/assets/helm --username <username> --password <password>
Command detail:
-
helm repo add
- The helm command used to add the repo. -
username
andpassword
- The username and bearer token from the previous step. -
kxi-repo
- The local name/alias you assign to this repo. You’ll use it when installing charts. -
https://portal.dl.kx.com/repository/kx-insights-charts/
- The URL of the KX Downloads Portal repository.
The following output is displayed,
"kxi-repo" has been added to your repositories
. -
-
Update your Helm local cache:
bash
Copyhelm repo update
The following output is displayed
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "kx-insights-kxidev" chart repository
Update Complete. ⎈Happy Helming!⎈
Create k8s secret for repo authentication
In this step you create a k8s secret and add it to your Kubernetes cluster. The Kubernetes secret is used to securely store sensitive data (like passwords, keys, or certificates). This lets your pods use them at runtime without exposing values directly in configs.
bash
kubectl create secret docker-registry kx-repo-access --docker-username=<username> --docker-password=<password> --docker-server=portal.dl.kx.com

kubectl create secret docker-registry
- The command to create a docker-registry secret to store authentication credentials.-
kx-repo-access
- The name of the secret being created. This is referenced underimagePullSecrets
in thedash-web-devval.yaml
created in the next step. -
--docker-username=<username>
- The username you use to login to the KX Downloads Portal. -
--docker-password=<password>
- The bearer token generated here, to login to the KX Downloads Portal. -
--docker-server=portal.dl.kx.com
- The name of the docker registry. In this case it is the KX Downloads Portal.
The following output is displayed, secret/kx-repo-access created
.
Configure a Helm Chart file
The configuration file specifies the license and repo access secret defined above. This file enables a LoadBalancer, which assigns an IP address so that KX Dashboards can be accessed externally.
Note
If you only want local access you can remove LoadBalancing by deleting service.type: LoadBalancer
lines from the .yaml
configuration below. In this case, to access KX Dashboards you must use port forwarding for local access; see Accessing the Dashboards Locally
-
Copy the following configuration file and save it as
dash-web-devval.yaml
.yaml
Copydash-web-devval.yamlglobal:
image:
repository: portal.dl.kx.com/
imagePullSecrets:
- name: kx-repo-access
license:
secretName: kxi-license
#onDemand=true # uncomment to use kc.lic
#type: "k4" # uncomment to use k4.lic
asFile: true
# for port forwarding icto-
encryption:
enabled: false
# set LoadBalancer for all components if required
service:
type: LoadBalancer
# Set
# dash-web:
# service:
# type: LoadBalancer
File details:
imagePullSecreats
=kx-repo-access
(this is the k8s secreted created in this step).-
license:secretName:
= This is the k8s secret created in a step previously. -
Set the license type as either:
-
onDemand:true
for kc.lic -
type =”k4”
for k4.lic
-
Install KX Dashboards
Use the Helm repo that was added above to install the dash-web
client into your Kubernetes cluster.
bash
$ helm install dash kxi-repo/dash-web --version="{version}" -f path/to/dash-web-devval.yaml

helm install
- The Helm CLI command to install a new release of a chart.-
dash
- The release name. This is how Helm identifies this installation. -
kxi-repo/dash-web
kxi-repo
- The alias for the Helm repository added earlier.dash-web
- The chart name inside that rep.
--version =
- The version of KX Dashboards you want to install. For example 2.12.0 (Major.Minor.Patch).-f path/to/dash-web-devval.yaml
-The path to a Helm chart values file that overrides the default chart configuration.
Access KX Dashboards
Accessing Dashboards is possible using the EXTERNAL-IP address and port 8080, separated by a colon; that is EXTERNAL-IP:8080
To get the IP address use Kubernetes command:
bash
kubectl get services/dash-web
Output includes the Name, Type, Cluster-IP, External-IP and Port information.
Accessing KX Dashboards locally
To access Dashboards locally, use port forwarding of the pod running KX Dashboards.
-
Get the pod names by running this command to return a list of services.
bash
Copykubectl get svc
- To expose the service port, run the port-forward command using the [deployment]-dash-web service name.
bash
Copykubectl port-forward svc/dash-dash-web 9090:8080
kubectl port-forward
- Sets up a tunnel between your local machine an a Kubernetes resource, forwarding traffic from a local port to a port on that resource.-
svc/dash-dash-web
- This means that your are forwarding to a service calleddash-dash-web
. -
9090:8080
- Sets up the port mapping.9090
is the local port and8080
is the target port on the Kubernetes service (dash-dash-web
). - Navigate to
http://localhost:9090
to Open KX Dashboards.

Install from local source code
You can deploy KX Dashboards (dash-web
) into your Kubernetes cluster using a local copy of the Helm chart instead of pulling it from a remote repository by running the following command. This may be required for testing or in air-gapped environments.
bash
helm install dash ./helm/dash-web -f dash-web-devval.yaml

helm install dash
- Instructs Helm to deploy a new chart as dash in Kubernetes.-
./helm/dash-web
- Points to the chart location on your local filesytem (not from a remote Helm repository, such as KX Downloads Portal). -
-f dash-web-devval.yaml
--f
- Specifies the values filedash-web-devval.yaml
.
Next Steps