Minikube

Minikube is a tool that quickly sets up a local Kubernetes cluster on macOS, Linux, and Windows. It’s a great solution for trying out HPE Machine Learning Data Management locally.

Before You Start

Manual Step Summary:

  1. Open a Powershell terminal.
  2. Run each of the following:
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  3. Download the latest WSL2 Linux Kernel for x64 machines.
  4. Run each the following:
    wsl --set-default-version 2
    
    wsl --install -d Ubuntu 
  5. Restart your machine.
  6. Start a WSL terminal and set up your first Ubuntu user.
  7. Update Ubuntu.
    sudo apt update
    sudo apt upgrade -y
  8. Install Homebrew in Ubuntu so you can complete the rest of this guide:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

All installation steps after this point must be run through the WSL terminal (Ubuntu) and not in Powershell.

You are now ready to continue to Step 1.

  • You can optionally install Homebrew to easily install tools like Docker, Minikube, and Helm.
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • You must have Docker Desktop installed.
Kubernetes & Openshift Version Support
  • Kubernetes: HPE Machine Learning Data Management supports the three most recent minor release versions of Kubernetes. If your Kubernetes version is not among these, it is End of Life (EOL) and unsupported. This ensures HPE Machine Learning Data Management users access to the latest Kubernetes features and bug fixes.
  • Openshift: HPE Machine Learning Data Management is compatible with OpenShift versions within the “Full Support” window.

1. Install Docker

brew install docker

See the official Docker getting started guide for the most up-to-date installation steps.

2. Install & Start Minikube

Install

brew install minikube

See the official Minikube getting started guide for the most up-to-date installation steps.

Start

  1. Launch Docker Desktop.
  2. Start Minikube:
minikube start

3. Install Pachctl CLI

brew tap pachyderm/tap && brew install pachyderm/tap/pachctl@2.10  
curl -o /tmp/pachctl.deb -L https://github.com/pachyderm/pachyderm/releases/download/v2.10.2/pachctl_2.10.2_amd64.deb && sudo dpkg -i /tmp/pachctl.deb

AMD

curl -o /tmp/pachctl.tar.gz -L https://github.com/pachyderm/pachyderm/releases/download/v2.10.2/pachctl_2.10.2_linux_amd64.tar.gz && tar -xvf /tmp/pachctl.tar.gz -C /tmp && sudo cp /tmp/pachctl_2.10.2_linux_amd64/pachctl /usr/local/bin 

ARM

curl -o /tmp/pachctl.tar.gz -L https://github.com/pachyderm/pachyderm/releases/download/v2.10.2/pachctl_2.10.2_linux_arm64.tar.gz && tar -xvf /tmp/pachctl.tar.gz -C /tmp && sudo cp /tmp/pachctl_2.10.2_linux_arm64/pachctl /usr/local/bin 

4. Install & Configure Helm

  1. Install Helm:

    brew install helm
  2. Add the HPE Machine Learning Data Management repo to Helm:

    helm repo add pachyderm https://helm.pachyderm.com  
    helm repo update  
  3. Install Pachyderm:

    helm install pachyderm pachyderm/pachyderm --set deployTarget=LOCAL --set proxy.enabled=true --set proxy.service.type=LoadBalancer

    Are you using an Enterprise trial key? If so, you can set up Enterprise HPE Machine Learning Data Management locally by storing your trial key in a license.txt file and passing it into the following Helm command:

    helm install pachyderm pachyderm/pachyderm --set deployTarget=LOCAL --set proxy.enabled=true --set proxy.service.type=LoadBalancer --set pachd.enterpriseLicenseKey=$(cat license.txt) --set ingress.host=localhost

    This unlocks Enterprise features but also requires user authentication to access Console. A mock user is created by default to get you started, with the username: admin and password: password.

This may take several minutes to complete.

5. Verify Installation

  1. Run the following command in a new terminal to check the status of your pods:
    kubectl get po -A
    NAMESPACE              NAME                                         READY   STATUS    RESTARTS        AGE
    default                console-6b9bb8766d-f2gm4                     1/1     Running   0             41m
    default                etcd-0                                       1/1     Running   0             41m
    default                pachd-76896d6b5d-kmfvw                       1/1     Running   0             41m
    default                pachd-loki-0                                 1/1     Running   0             41m
    default                pachd-promtail-rm5ss                         1/1     Running   0             41m
    default                pachyderm-kube-event-tail-b9b554fb6-dpcsr    1/1     Running   0             41m
    default                pg-bouncer-5c9494c678-z57qh                  1/1     Running   0             41m
    default                postgres-0                                   1/1     Running   0             41m
    kube-system            coredns-6d4b75cb6d-jnl5f                     1/1     Running   3 (42m ago)   97d
    kube-system            etcd-minikube                                1/1     Running   4 (42m ago)   97d
    kube-system            kube-apiserver-minikube                      1/1     Running   3 (42m ago)   97d
    kube-system            kube-controller-manager-minikube             1/1     Running   4 (42m ago)   97d
    kube-system            kube-proxy-bngzv                             1/1     Running   3 (42m ago)   97d
    kube-system            kube-scheduler-minikube                      1/1     Running   3 (42m ago)   97d
    kube-system            storage-provisioner                          1/1     Running   5 (42m ago)   97d
    kubernetes-dashboard   dashboard-metrics-scraper-78dbd9dbf5-swttf   1/1     Running   3 (42m ago)   97d
    kubernetes-dashboard   kubernetes-dashboard-5fd5574d9f-c7ptx        1/1     Running   4 (42m ago)   97d
  2. Re-run this command after a few minutes if pachd is not ready.

6. Connect to Cluster

  1. Run minikube tunnel to start a tunnel.
  2. In a separate terminal, get the external IP address of the pachyderm-proxy service:
    kubectl get all
    service/pachyderm-proxy             LoadBalancer   10.110.148.228   127.0.0.1     80:32024/TCP   
  3. Run the following command to connect to your cluster:
pachctl connect 127.0.0.1:80 

Optionally open your browser and navigate to the Console UI.

Tip

You can check your HPE Machine Learning Data Management version and connection to pachd at any time with the following command:

pachctl version
COMPONENT           VERSION  
pachctl             2.10.2  
pachd               2.10.2