Kubernetes Quickstart (preview)

Imply Manager is currently being offered as part of a preview program. To participate in this program, please contact your Imply representative.

This guide will walk through deploying the Imply Manager on a Kubernetes (K8s) cluster using an Imply-maintained Helm Chart. The commands assume that you are using OSX, but can be easily adapted for a Windows or Linux OS.

Prerequisites

To complete this quickstart, you will need:

Setup Environment

In this first section, we will setup a local single-node K8s cluster using Minikube that we can use for our Imply Manager deployment. You will need a cluster with a minimum of 2 CPUs and 6GB RAM available.

If you already have a K8s cluster available for use: skip to the section on installing Helm. If you already have Helm installed: skip to the section on adding the Imply repository.

Install Minikube

Install Minikube on your system according to the installation documentation. If you are using Homebrew, the main steps are:

brew install kubernetes-cli
brew cask install minikube

Start Minikube

Start a local Kubernetes cluster with the required resources:

minikube start --cpus 2 --memory 6144 --disk-size 16g

Install Helm

Install Helm into your K8s cluster according to the installation documentation. If you are using Homebrew, the commands are:

brew install kubernetes-helm
helm init --history-max 200

Add Imply Repository

Add the Imply repository to Helm by running:

helm repo add imply https://static.imply.io/onprem/helm
helm repo update

Create Secret for Docker Registry

The Imply Manager images used by the Helm chart are stored in a private repository on Docker Hub. If you have not done so already, you will need to provide your Docker ID to Imply in order to gain access to this repository. Once this is done, you will need to generate a Secret to allow the nodes of your K8s cluster to pull this image. Generate a secret using the following command, substituting {dockerUsername}, {dockerEmail}, and {dockerPassword} with the appropriate values:

kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v1/ --docker-username={dockerUsername} --docker-email={dockerEmail} --docker-password={dockerPassword}

Fetch and Configure Imply Manager Chart

Now that our K8s environment is setup, we are ready to fetch and install the Imply Manager chart. There are a number of ways to reference a chart using the helm install command. For clarity, we will take the approach of fetching the chart to our local machine, modifying the configuration file (values.yaml) and installing from our locally-customized chart.

helm fetch --untar imply/imply

The default settings will create the following Deployments:

These defaults are all configurable by modifying the Chart's values.yaml file (or passing in an override with -f or --values when calling helm install). For now, the only thing we need to do is to set the manager.licenseKey field with our Imply license:

manager:
  licenseKey: |
    {"name":"MyCompany","expiryDate":"2029-01-01","features":[]}|2019-07-10|a9mtENomb6ed1...

Save your changes to values.yaml.

Install Imply Manager

From the same directory as the previous step, run the following command to install the Helm Chart:

helm install imply

The install output will contain a NOTES section that has information relevant to accessing your cluster:

NOTES:

Release name: mewing-crab-imply

It may take a few minutes for the deployment to become available.

Once all the pods are running, you can access the Manager console at http://localhost:9097 by running:
  kubectl port-forward svc/mewing-crab-imply-manager 9097

Once the Imply Manager reports that the cluster is running, you can access Pivot at http://localhost:9095 by running:
  kubectl port-forward svc/mewing-crab-imply-query 8888 9095

It may takes a few minutes for the manager, dependencies, and initial Imply cluster to be deployed. Use the commands mentioned in the Helm Chart's notes to setup port forwarding to:

If the manager or cluster aren't available after a few minutes, use commands like kubectl get pods and kubectl describe pods to check if the pods were created successfully and are running. If they are, the logs from the manager pod may contain more information:

kubectl logs -lapp.kubernetes.io/name=imply-manager
Overview

Tutorial

Deploy

Manage Data

Query Data

Visualize

Configure

Special UI Features

Imply Manager

Misc