Skip to content

kdb Insights Enterprise Installation

This page details the steps to deploy kdb Insights Enterprise in a pre-configured Kubernetes cluster. Once installed, you can build and deploy your workloads.

Upgrade

If you are upgrading an existing kdb Insights Enterprise deployment, refer to the upgrade guide instead.

Prerequisites

Complete all of the following before starting the installation.

Cluster and shared services

You must have a Kubernetes cluster in place with the necessary shared services available. kdb Insights Enterprise provides Terraform scripts for quick deployment across all main cloud providers and on-premises environments:

To install into an existing cluster, 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. The KXI CLI uses Helm to install, upgrade, and reconfigure the application.

Important

Use the latest supported Helm 3.x version. Helm 4.x is not supported.

DNS

External clients require a DNS record set up with your DNS provider to interact with kdb Insights Enterprise.

kdb Insights Enterprise license

The install process requires a valid kdb Insights Enterprise license. Contact your KX sales representative to obtain one.

Note

The self-service licensing model previously used for KX products has been deprecated. Contact your sales representative if you have questions or want to move to the new model.

Registry credentials

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

Validation

Before installing, you can validate that your cluster is capable of running kdb Insights Enterprise using the provided Helm chart. See the validation documentation for details.

Installation overview

When you run the install command, the following happens automatically:

  • A values.yaml config file is generated for repeatable future installs.
  • Shared cluster components (Operator and Management Service) are installed if not already present.
  • The application is deployed to the cluster using the generated values.yaml.

Configure the CLI

The KXI Command Line Interface (CLI) provides an interactive installer for deploying kdb Insights Enterprise on a Kubernetes cluster.

The following steps configure the CLI ready to deploy the application to the cluster:

  1. Install the CLI on the machine you will use to access the cluster and run the install from.

  2. Ensure you have the following values ready before proceeding:

    Variable Example Notes
    INSIGHTS_HOSTNAME kxi-insights.domain.com DNS Hostname setup
    KX_LIC /home/app/q/kx.lic Path to KX License
    INSIGHTS_VERSION 1.19.0
  3. Configure the CLI by running:

    kxi configure
    

    This command sets the CLI supported settings like the hostname and the namespace, and creates a ~/.insights/cli-config configuration file that stores default values for frequently used options.

  4. Run the kxi install setup command, as follows:

    kxi install setup --hostname $INSIGHTS_HOSTNAME --license-filepath $KX_LIC
    

    This command walks you through the following configuration options:

    • Helm and Docker credentials - registry access for charts and images.

    • Keycloak admin passwords - save these for future use; they give access to the Keycloak administration console.

    • Encryption in transit - enabled by default for new installations. When upgrading, the CLI gives you the option to enable or disable it.

    • kdb Insights Enterprise-specific settings - including Entitlements and Query Environments (QEs).

    The kxi install setup command generates a values.yaml config file to use for repeatable future installs.

For information on further configuration and customizations available refer to the Configuration guide.

Information

To change any of these settings after installation, perform an upgrade.

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

Deploy on Kubernetes

You can deploy kdb Insights Enterprise to the default namespace or a uniquely created namespace.

Warning

Two deployments cannot share the same namespace.

  1. Before deploying, check the active namespace. Run the following command to confirm there are no existing deployments in the target namespace. If the command returns no output, the namespace is clear:

    helm ls
    
  2. Deploy kdb Insights Enterprise by running the following command:

    kxi install run --filepath=values.yaml --version $INSIGHTS_VERSION --hostname $INSIGHTS_HOSTNAME --license-filepath $KX_LIC
    

The CLI installs the following additional components if they are not already present:

  • kdb Insights Operator - deployed in the kxi-operator namespace as a single deployment shared across all kdb Insights Enterprise deployments on the cluster.

  • kdb Insights Management Service - deployed in the kxi-management namespace as a single deployment shared across all kdb Insights Enterprise deployments on the cluster.

Operator compatibility

An Operator version is only compatible with the corresponding minor version of kdb Insights Enterprise. For example, Operator 1.19.x supports application version 1.19.x. The CLI automatically looks up the latest compatible Operator version for your target application version.

Deploy behind a proxy server

kdb Insights Enterprise supports deployment behind a proxy server 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 the values.yaml file is generated during installation, but before calling kxi install run add the following proxy settings to it:

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:

  • Your values.yaml must contain both the proxy settings from AKS and any application-specific values (such as the ingress host).

  • If AKS cluster proxy values change, update values.yaml to match, then run an upgrade to apply the new settings.

  • If you upgrade kdb Insights Enterprise or change the ingress hostname, verify your proxy settings still satisfy the above requirements.

Deploy on OpenShift

Apply OpenShift SCC to kdb Insights namespaces before deploying:

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

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
      encryption:
        enabled: true
        withinMesh:
          nginx: false
          operator: false
          prometheus: false
    kxi-operator:
      config:
        mount:
          storageClass: "ocs-storagecluster-cephfs"
    packages:
      useLocalValues: true
      storageClass: "ocs-storagecluster-cephfs"
      storageSize: 10Gi
    
  3. Deploy kdb Insights Enterprise by running the following command:

    kxi install run --filepath=values.yaml --version=$INSIGHTS_VERSION --namespace kxi
    

OpenShift specific config

To define storage class values for use in kdb Insights Enterprise and ensure they appear in the web interface, add the following to values.yaml:

global:
  insightsConfig:
    storage:
      database-single:
        provisioners:
          # Priority list of default provisioners to select for each component.
          default: ["rook-ceph.cephfs.csi.ceph.com"]
          # Indicates the set of supported provisioners within different components
          # in the system.
          supported: ["rook-ceph.cephfs.csi.ceph.com"]
      database-cluster:
        provisioners:
          # Boolean to indicate all are supported
          supported: true
          default: ["rook-ceph.cephfs.csi.ceph.com"]

Post install

Once installation is complete, verify that all pods have entered a Running state:

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

Allow a short period of time for all pods to start before checking.

Next steps

With the base system running, deploy a package to start ingesting and analyzing data:

Back to top