Description

This document is meant to cover some of the configuration of the Qlik Associative Big Data Index (QABDI)  install. This is not meant to replace the installation document provided, this is purely supplemental.

Lab Environment

For my local install I used the following setup:

  • Local Machine: MacOs
  • VM Software: Parallels
  • VM OS: Ubuntu 18.04 LTS
  • Kubernetes Distro: Microk8s

Note: I chose microk8s because of its quick deployment using snap and K8s not supporting Parallels in their Minikube distro. If you are using Windows and/or use VirtualBox or Hyper-V, I would suggest Minikube since it is the official K8s learning environment distro.

Prerequisites

Now I don’t think these are things that you have to know before getting started, however you will need to be willing to learn them to be successful. This is by no means a comprehensive list, but a good starting point.

Linux

While MacOs is similar, Windows is very different. It’s good to have a general understanding of different distributions, Linux’s folder structures and using package managers.

Bash

This is the terminal language used in MacOs and Linux and will be used through out the whole install and configuration. It is similar to the cmd line in Windows.

Some commands you should be familiar with:

  • cd – Change directories.
  • ls – List contents of a directory.
  • mkdir – Create a directory.
  • touch – Create a file.
  • rm – Delete a file.
  • mv – Move a file.
  • cp – Copy a file.
  • nano – Terminal text editor to edit files. vim can be used as an alternative.
  • cat – Print contents of text file in terminal.
  • sudo – Run a command as an admin.
  • curl – Call a web url.

Here is a quick guide, I found. though there are many others you can find with a quick Google search.

YAML/JSON

Kubernetes and QABDI uses yaml and json for settings files. It is worth knowing the fundamentals of both of these file stuctures.

Qlik Sense

This is probably a given, but you should have experience in building a Qlik applications and have a deep understanding of the Qlik Associative Engine before this. This will help understand the indexing portion, as well as setting up the schema. Having ODAG experience will be helpful when building an app utilizing QABDI.

MicroK8s Install

You can find most of the documentation you need on their website here.

I did a snap install:

>snap install microk8s --classic

Additional configurations:

  1. Alias microk8s.kubectl to only kubectl, making it easier to follow the documentation.
    • >snap alias microk8s.kubectl kubectl
  2. Enable additional kubernetes components
    • >microk8s.enable dashboard dns storage
    • dashboard enables a gui dashboard available at: localhost:8001/api/v1/namespaces/default/services/http:qabdi-managementconsole:8080/proxy
    • dns adds ConfigureDNS to the cluster.
    • storage mounts a persistance volume to the host OS. This can be located on your Linux filesystem at: /var/snap/microk8s/common/default-storage

Chart Install

Helm CMD

Template:

>helm install --name bdi bt_qlik/bdi \

-f %settings-file.yaml% \ 

--set acceptLicense=true \

--set 'license.key=%enterkey%'

Example:

helm install --name qabdi bt_qlik/bdi -f qsl-manager-loadbalancer.yaml --set acceptLicense=true --set 'license.key=lkjalsdkjfalskdfjalfd'
Note:

If the license doesn’t take in the helm install cmd, you will need to edit the secret datavalue. This has to be the Base64 encoding of the license value.

 

Final:

I ended up moving all my settings to a yaml file and use the following:

helm install --name qabdi bt_qlik/bdi -f override.yaml

override.yaml contents:

## BDI values
## Default values: https://github.com/qlik-trial/elastic-charts/blob/master/charts/bdi/values.yaml

## EULA License Agreement
acceptLicense: true

license:
    ## ABDI License Key
    ##
    key: "lkjalsdkjfalskdfjalfd"


## MicroK8s doesn't have a load balancer. This exposes the service to a port of the node.
##
qslmanager:
  service:
    type: NodePort

QSL Endpoint

  • Make sure the QSL services are up.
  • Make sure the QSLManager is type: Nodeport
    • If you are using a cloud service or configured a load balancer user us LoadBalancer instead.
  • Make sure kubernetes proxy is up >kubectl proxy
  • Forward cluster port to host port: kubectl port-forward service/qabdi-qslmanager 55000:5500 0 -n default --address 0.0.0.0
    • default=namespace
    • If you are using a load balancer you can find the ip address using kubectl get svc

Management Console:

API URL: localhost:8001/api/v1/namespaces/default/services/http:qabdi-managementconsole:8080/proxy