Skip to main content

Imply Enterprise on minikube

The following steps take you through installing Imply on a single machine using minikube and an Imply-maintained Helm chart. minikube is a small-scale, single-node Kubernetes engine suitable for exploratory purposes.

If you are new to Imply and Kubernetes, this is a good way to get started. This setup is not recommended for production deployments.

We'll set up a local cluster consisting of:

  • Imply Manager
  • An Imply cluster with one master node, one query node, and two data nodes
  • A MySQL server (metadata storage for both the manager and the Imply cluster)
  • A single-node ZooKeeper cluster
  • A single-node MinIO server (as deep storage)

The commands assume that you are using OSX, but can be easily adapted for a Windows or Linux OS. We will be using the Homebrew package manager to install minikube and Helm. If you do not already have Homebrew, get it here.

Step 1: Install minikube and create a Kubernetes cluster

If you already have a Kubernetes environment available to use, you can skip to the next step. Our Kubernetes cluster will use 3 CPUs, 8 GB RAM, and 20 GB disk space. Your target machine should be able to support those specifications, otherwise adjust the amount of resources requested.

For complete installation instructions, including instructions for other operating systems, see minikube installation instructions in the Kubernetes documentation.

  1. Install minikube and a driver that matches your setup, such as qemu for ARM or HyperKit for x86.

    The following example installs minikube and HyperKit using Homebrew on Mac:

    brew install minikube hyperkit

    For more information about installing HyperKit, see hyperkit.

    The following example installs minikube, QEMU, and (optionally) socket_vmnet using Homebrew on Mac:

    # Depending on your network setup, you may also need `socket_vmnet`. 
    brew install minikube qemu # socket_vmnet`

    For more information about installing QEMU, see qemu

  1. Start a local Kubernetes cluster with the required resources. Make sure to specify your driver. For example, the following command starts a minikube Kubernetes cluster that uses HyperKit:

    minikube start --cpus 3 --memory 8192 --disk-size 20g --vm-driver=hyperkit

    This creates a new cluster named minikube. If you already have an existing minikube profile with the same name, you can create a different cluster by adding --profile [new-profile-name] to the minikube start command and any subsequent minikube commands.

    Call minikube profile list to view your clusters.

Step 2: Install and configure Helm

Helm is a package manager for Kubernetes. Imply's Kubernetes implementation uses a Helm chart to handle setup and administration functions for the Imply cluster.

If you already have Helm 3.10 or later installed, skip to the next step. Otherwise:

  1. Install Helm with the following command:
    brew install helm
  2. Add the Imply repository to your local Helm client:
    helm repo add imply https://static.imply.io/onprem/helm
    helm repo update
    You can view the definition and values of the Imply chart using helm show.

See Deploy with Kubernetes for introductory information on using Helm with Imply.

Step 3: Apply your Imply Manager license

By default, a new installation includes a 30-day trial license. If you have a longer-term license that you want to apply, follow these steps:

  1. Create a file named IMPLY_MANAGER_LICENSE_KEY and paste your license key as the content of the file.
  2. Create a Kubernetes secret named imply-secrets by running:
    kubectl create secret generic imply-secrets --from-file=IMPLY_MANAGER_LICENSE_KEY

Step 4: Install Imply

  1. Deploy the Imply chart to install Imply:

    helm install imply imply/imply

    The chart will take a few minutes to deploy, after which you will be presented with information on how to access your cluster. If the installation fails because of a template error, make sure you're on a recent version of Helm 3. You can check the version with the following command: helm version.

  2. As noted in the Helm output, set up port forwarding to access the following services:

    • Imply Manager

      kubectl --namespace default port-forward svc/imply-manager-int 9097
    • Pivot and Druid console

      kubectl --namespace default port-forward svc/imply-query 8888 9095

Step 5: Access Imply services

  1. Start your Imply cluster.

    1. Access the Imply Manager UI in your web browser at http://localhost:9097.
    2. Create an account, or log into your account. You will be prompted to create an account the first time you access the Imply Manager.
    3. A cluster is created for you by default. Start the cluster in Imply Manager by clicking Manage then Start.
  2. Once the cluster is running, access the Druid and Pivot UIs from your web browser at the following addresses:

    • Druid console: http://localhost:8888
    • Pivot: http://localhost:9095

    You will not be able to access Pivot or the Druid console until the cluster is running.

Step 6: Stop, restart, or remove Imply on minikube

  • To terminate your Imply processes, stop your minikube node by running the command:

    minikube stop
  • When you stop minikube, your user data is kept intact. To restart the cluster, call minikube start as shown below.

    minikube start --cpus 3 --memory 8192 --disk-size 20g --vm-driver=hyperkit

    You will not need to reinstall Imply, but you will need to repeat the port forwarding steps. It may take a few minutes for Imply to restart.

  • Finally, if you want to remove your existing installation of Imply, you can uninstall the application:

    helm delete imply

    Or you can delete the minikube cluster entirely:

    minikube delete

Next steps

If you want to learn more about the parameters available in the Helm chart, see Fetching and updating the Imply Manager Helm Chart.

That's it! If you are new to Imply, try the quickstart steps for loading and querying data.