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 the Create a k8s secret for the KX license step.
Deploy using Kubernetes Quick Start
To deploy KX Dashboards, complete the following steps:
- Create a k8s secret for the kdb license
- Generate a KX Downloads Portal bearer token
- Add a Helm Chart repository
- Create a k8s secret for repo authentication
- Configure a Helm chart file
- Install KX Dashboards
- Access KX Dashboards
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.
kubectl create secret generic kxi-license --from-file=license=path/to/*.lic
Command detailed:
kubectl create secret generic— Creates a generic Kubernetes secret.kxi-license— The name of the secret. This is referenced in the Helm chart file in the Configure a Helm Chart file 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 download the necessary images:
- Navigate to the KX Downloads Portal.
- Click Login, enter your email address, and click Sign In.
- Check your email for a message from
noreply@kx.comto 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 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.
Info
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 repo.
Add a Helm Chart repository
In this step you add a Helm chart repository to enable access to the official charts needed to deploy, configure, and manage KX Dashboards consistently across environments.
-
Enter the following command:
helm repo add kxi-repo https://portal.dl.kx.com/assets/helm --username <username> --password <password>Command detailed:
helm repo add— The Helm command used to add the repo.--usernameand--password— The username and bearer token from the previous step.kxi-repo— The local name/alias you assign to this repo. Used when installing charts.https://portal.dl.kx.com/assets/helm— 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:
helm repo updateThe following output is displayed:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "kxi-repo" 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), letting your pods use them at runtime without exposing values directly in configs.
kubectl create secret docker-registry kx-repo-access --docker-username=<username> --docker-password=<password> --docker-server=portal.dl.kx.com
Command detailed:
kubectl create secret docker-registry— Creates a docker-registry secret to store authentication credentials.kx-repo-access— The name of the secret being created. This is referenced underimagePullSecretsin thedash-web-devval.yamlcreated 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 in the Generate a bearer token step.--docker-server=portal.dl.kx.com— The name of the Docker registry (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 in the steps 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 the 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 KX Dashboards Locally.
-
Copy the following configuration file and save it as
dash-web-devval.yaml:global: 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 encryption: enabled: false # set LoadBalancer for all components if required service: type: LoadBalancer # Set # dash-web: # service: # type: LoadBalancerFile details:
imagePullSecrets=kx-repo-access— The k8s secret created in the Create k8s secret for repo authentication step.license.secretName— The k8s secret created in the Create a k8s secret for the KX license step.- Set the license type as either:
onDemand: trueforkc.lictype: "k4"fork4.lic
Install KX Dashboards
Use the Helm repo added above to install the dash-web client into your Kubernetes cluster:
helm install dash kxi-repo/dash-web --version="{version}" -f path/to/dash-web-devval.yaml
Command detailed:
helm install— The Helm CLI command to install a new release of a chart.dash— The release name, used by Helm to identify this installation.kxi-repo/dash-web:kxi-repo— The alias for the Helm repository added earlier.dash-web— The chart name inside that repo.--version=— The version of KX Dashboards to install, e.g.2.20.0(Major.Minor.Patch).-f path/to/dash-web-devval.yaml— The path to the Helm chart values file that overrides the default chart configuration.
Access KX Dashboards
KX Dashboards is accessible using the EXTERNAL-IP address and port 8080, in the format EXTERNAL-IP:8080.
To get the IP address, run:
kubectl get services/dash-web
The output includes the Name, Type, Cluster-IP, External-IP, and Port information.
Accessing KX Dashboards Locally
To access KX Dashboards locally, use port forwarding on the pod running KX Dashboards.
-
Get the list of services by running:
kubectl get svc -
Expose the service port using the
[deployment]-dash-webservice name:kubectl port-forward svc/dash-dash-web 9090:8080Command detailed:
kubectl port-forward— Sets up a tunnel between your local machine and a Kubernetes resource, forwarding traffic from a local port to a port on that resource.svc/dash-dash-web— The service to forward to.9090:8080— Port mapping:9090is the local port and8080is the target port on the Kubernetes service.
-
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. This may be required for testing or in air-gapped environments:
helm install dash ./helm/dash-web -f dash-web-devval.yaml
Command detailed:
helm install dash— Instructs Helm to deploy a new chart asdashin Kubernetes../helm/dash-web— Points to the chart location on your local filesystem (not from a remote Helm repository).-f dash-web-devval.yaml— Specifies the values filedash-web-devval.yaml.