Skip to content

kdb Insights Enterprise Installation

The section details the steps to deploy the kdb Insights Enterprise in a pre-configured Kubernetes cluster. Once installed you can use the system to build and deploy your workloads.

If you want to upgrade your kdb Insights Enterprise deployment, refer to the upgrade guide.

Prerequisites

  • Cluster and shared services

    Before installing kdb Insights Enterprise you must have an appropriate Kubernetes cluster in place with the necessary shared services available. kdb Insights Enterprise provides a number of Terraform scripts which enable the quick deployment of the necessary cluster services on all three main cloud providers.

    To install into an existing cluster please ensure that all necessary infrastructure prerequisites have been met.

  • Kubernetes access

    You must have access to the Kubernetes cluster along with a number of third-party tools to interact with the cluster, including an active kubeconfig with a namespace.

  • Helm

    Helm is used to deploy and manage kdb Insights Enterprise.

  • DNS

    In order for external clients to interact with kdb Insights Enterprise, a DNS record must be setup with your DNS provider.

  • kdb Insights CLI

    The following instructions use the kdb Insights CLI. Make sure you have installed the CLI before you begin.

  • kdb Insights Enterprise license

    The install process requires a kdb Insights Enterprise license. To obtain a valid license, speak to your KX sales representative.

    The self-service licensing model previously in use for KX products has been deprecated. Contact your sales representative if you have questions about this, and wish to discuss moving to the new model.

You must have credentials to the appropriate Helm and Docker registries for charts and images. The install prompts you for repository locations and access details. Default registries:

- helm: https://portal.dl.kx.com/assets/helm/
- docker: portal.dl.kx.com

Variables

The CLI provides an interactive installer that deploys kdb Insights Enterprise on a Kubernetes cluster. It guides you through the steps to install the application. To ensure a smooth process, you need these variables:

variable example further details
INSIGHTS_HOSTNAME kxi-insights.domain.com DNS Hostname setup
KX_LIC /home/app/q/kx.lic Path to KX License
INSIGHTS_VERSION 1.8.0 Version to install

Installation

Deploy on Kubernetes

When you deploy kdb Insights Enterprise, the install command does the following:

  1. Generates a values.yaml config file to use for repeatable future installs.
  2. Installs the kdb Insights Operator to the kxi-operator namespace
  3. Deploys the application to the cluster using the generated values.yaml

kdb Insights Enterprise prompts you for Helm and Docker credentials during the install setup. It also prompts you to create Keycloak admin passwords, which you should save for future use. These passwords enable you to log into the Keycloak administration console.

You can deploy kdb Insights Enterprise to the default namespace or a uniquely created namespace. However, two deployments cannot share the same namespace.

Before you deploy, check the active namespace to ensure there are no current deployments. The following command returns any instances of the application currently deployed to the active namespace:

helm ls

Encryption of data in transit is enabled by default for new installations. When you upgrade kdb Insights Enterprise, the CLI provides the option to enable or disable encryption in transit.

To change this setting after installation, perform an upgrade.

To deploy kdb Insights Enterprise, run the following command:

kxi install run --version $INSIGHTS_VERSION --hostname $INSIGHTS_HOSTNAME --license-filepath $KX_LIC

If the kdb Insights Operator is not already installed, the CLI attempts to install it along with the application. This is deployed within the kxi-operator namespace as a single deployment shared across all kdb Insights Enterprise deployments on the cluster.

An Operator version is only compatible with corresponding minor versions of kdb Insights Enterprise. For example, version 1.4.X of the Operator supports 1.4.X of the application.

The CLI attempts to lookup the latest compatible operator version for the target application version.

Deploy behind a proxy server

kdb Insights Enterprise supports deployment behind a proxy server if you use Kubernetes on the Azure platform. Refer to Microsoft's HTTP proxy support in Azure Kubernetes Service (AKS) for important details about running a proxy server through the Azure platform.

After kdb Insights Enterprise creates a values.yaml config file during installation, specify the following settings in the file:

global:
  ## @section proxy Configure Proxy Env details
  ## @param httpProxy Set the proxy details for 'http_proxy' and 'HTTP_PROXY'
  ## @param httpsProxy Set the proxy details for 'https_proxy' and 'HTTPS_PROXY'
  ## @param noProxy Set the proxy details for 'no_proxy' and 'NO_PROXY'
  # proxy: {}

Append the following example, of a valid proxy configuration entry, to your existing values.yaml file and enter the appropriate settings.

global:
  proxy:
    httpProxy: http://1.1.1.1:3128/
    httpsProxy: http://2.2.2.2:3128/
    noProxy: *.insights.svc

Important considerations for using a proxy with AKS

As a result of how AKS handle proxy servers, you must be aware of the following considerations:

  • When your AKS cluster is already setup with proxy settings, your kdb Insights Enterprise values.yaml file must contain both the proxy settings from AKS and the application-specific values, for example, the ingress host of kdb Insights Enterprise.
  • If any changes occur to the AKS cluster proxy values, you must update the values.yaml file for your kdb Insights Enterprise deployment to match. Then, after the AKS cluster settings have been applied, run an upgrade for your kdb Insights Enterprise deployment to use the new proxy settings.
  • If you upgrade your kdb Insights Enterprise deployment to a newer version, or if the ingress host name is changed, then you must ensure your proxy settings align with the above requirements.

Deploy on OpenShift

Apply OpenShift SCC to kdb Insights namespaces first.

oc create ns kxi
oc create ns kxi-operator

oc adm policy add-scc-to-group nonroot-v2 system:serviceaccounts:kxi
oc adm policy add-scc-to-group nonroot-v2 system:serviceaccounts:kxi-operator

For OpenShift deployments, do the following:

  1. generate the values.yaml file by populating the required parameters

    kxi install setup --namespace kxi
    

  2. open the values.yaml with your preferred editor and append openshift required values

    global:
      clusterProvider: openshift
    
    packages:
      useLocalValues: true
      storageClass: "rook-cephfs"
      storageSize: 10Gi
    

  3. finally, deploy it
    kxi install run --filepath=values.yaml --version=$INSIGHTS_VERSION --namespace kxi
    

Post install

Once the kdb Insights Enterprise is running you should see pods deployed. All pods should enter a Running state after a short period of time.

kubectl get pods -l app.kubernetes.io/instance=insights

Next steps

After installing the base system, deploy a package to ingest and analyze data.

Customize deployment

You can, alternatively, supply all setup and installation options by command line arguments or cli configuration. Refer to the options precedence for a description of the order in which these are read.

There are further configuration and customizations available for kdb Insights Enterprise. Details on how to use these are available in the Configuration section.