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:
- Alias microk8s.kubectl to only kubectl, making it easier to follow the documentation.
>snap alias microk8s.kubectl kubectl
- 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 data
value. 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