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.

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 that enable the quick deployment of the necessary cluster services on all three main cloud providers.

    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.

  • DNS

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

  • kdb Insights Enterprise license

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

    Note

    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.

  • Default registries

    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:

Validation

To validate that the cluster is able to run kdb Insights Enterprise, use the helm chart provided, that can be deployed to your cluster. Read the validation documentation.

Installation overview

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

  • Generates a values.yaml config file to use for repeatable future installs

  • Installs the kdb Insights Operator to the kxi-operator namespace

  • Deploys the application to the cluster using the generated values.yaml

Configure the CLI

The KXI Command Line Interface (CLI) tool provides an interactive installer that deploys 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 variables available

    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.17.0
  3. Configure the CLI by calling the following:

    kxi configure
    

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

  4. Before running the install, run the kxi install setup command, as follows:

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

    This command guides you through the configuration options including the following:

    • For the Helm and Docker credentials.

    • To create Keycloak admin passwords, which you should save for future use. These passwords enable you to log into the Keycloak administration console.

    • 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 set kdb Insights Enterprise-specific configuration options:

    • Entitlements

    • Query Environment (QE)

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.

However, two deployments cannot share the same namespace.

  1. 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
  1. Deploy kdb Insights Enterprise by running the following command:
kxi install run --version $INSIGHTS_VERSION --hostname $INSIGHTS_HOSTNAME --license-filepath $KX_LIC

The CLI attempts to install the following additional components along with the application, if they are not present:

The kdb Insights Operator 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.17.X of the Operator supports 1.17.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 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
  1. 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
  1. 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, include the following configuration:

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 the kdb Insights Enterprise has been installed you should check to see that it is running.

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.