Preparing Qlik Sense Enterprise for elastic deployments

For elastic deployments, Qlik Sense Enterprise is deployed to a Kubernetes cluster in the form of a set of container images in a package provided as a Helm chart. To be able to install the following items are required to be in place (also refer to the system requirements for more details).

  • A running Kubernetes cluster – this can be run locally for development purposes or deployed to cloud vendors including AWS and Azure.
  • The Kubernetes cluster must have access to file storage to persist data. This storage must be provided as a Persistent Volume Claim that allows readwritemany access. You will need the name of this claim when installing

The Qlik documentation does not cover the installation and configuration of a Kubernetes cluster and you should review the documentation for this at either https://Kubernetes.io or for the cloud vendor or product you are using.

You will also need the following tools installed on your local machine to interact with your Kubernetes environment, issue commands and deploy software:

  • Kubectl - Install kubectl on the machine you will run admin commands from. You can find further details for your operating system at https://Kubernetes.io.
    This can point to different clusters if you have more than one. Ensure that the commands go to the right Kubernetes instance.
  • Helm - Helm is a package manager built for Kubernetes. It has a concept known as charts, used to define what services are required, what images are used, and default settings when the run in the Kubernetes cluster. It is used to push the Qlik Sense package into Kubernetes and relies on kubectl, so it must be installed on the same machine as kubectl. Qlik uses helm to define a default chart to make deployments simple for customers.

    To install Helm on your local machine follow the instructions for your operating system at https://docs.helm.sh/.

Preparing your local tools

Once you have set up your Kubernetes cluster, you must prepare your local tools to work with your Kubernetes cluster. To prepare your local tooling you must:

  • Bind kubectl to your Kubernetes cluster
  • Add Qlik’s helm chart repository
  • Initialize helm to work with your Kubernetes cluster

Before you begin you should have the following installed on your local machine:

  • Kubectl
  • Helm

To bind kubectl to your Kubernetes cluster:

  1. Verify that kubectl is pointing to your Kubernetes cluster using the following command:
    kubectl config current-context
  2. If kubectl is not pointing to your Kubernetes cluster, use the following command to get a list of available clusters:
    kubectl config get-clusters
  3. Set the kubectl to point to the desired cluster using the following command:
    kubectl config set-cluster <cluster-name>

To add Qlik’s helm chart repository:

  1. Run the following command to add Qlik’s helm chart repository to Helm. This is where Qlik Sense is pulled from:
    helm repo add qlik https://qlik.bintray.com/stable
  2. Use the following command to get a list of all configured repositories and verify that the Qlik helm chart repository was successfully added:
    helm repo list

To use helm to with your Kubernetes cluster it needs to be initialized to create the helm Tiller pod that handles installations:

  1. The following command is used to do this in simple cases

    To use helm to deploy into Kubernetes, the helm Tiller pod is added to the Kubernetes cluster first.

    The following command is used to do this in simple cases:

    helm init --wait
  2. If the Kubernetes cluster has security features such as RBAC enabled then the following commands should be run in addition:
    kubectl create serviceaccount --namespace kube-system tiller kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller helm init --upgrade –-wait kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'