This project automates deployment of Kubeflow, MLflow, Aim, and LakeFS into a unified webapp deployed in kind.
Before getting started, ensure you have the following prerequisites installed:
- kind - https://kind.sigs.k8s.io/docs/user/quick-start/#installing-with-a-package-manager
- check
kind version
- check
- docker - https://docs.docker.com/desktop/
- check
docker version
- check
- kubectl - https://kubernetes.io/docs/tasks/tools/#kubectl
- check
kubectl version
- check
- kustomize - https://kubectl.docs.kubernetes.io/installation/kustomize/
- check
kustomize version
- check
- helm - https://helm.sh/docs/intro/install/
- check
helm version
- check
Make sure docker is configured for 16 GB of ram and 8 CPU cores.
These tools may help manage the cluster and monitor progress during install:
- k9s - https://k9scli.io/topics/install/
- check
k9s version
- check
The project contains several scripts:
- .\Make - Primary Windows-native batch script for deploying and managing AI-Streamliner
- Makefile - Original macOS/Linux/WSL script for deploying and managing AI-Streamliner
- To check if all prerequisite tools are installed:
.\Make check
- To deploy all AI-Streamliner resources in a single command:
.\Make streamliner
- Ignore any errors or outputs in the terminal. If installation doesn't complete in 15 minutes, try again. The installation will either succeed or fail no intervention is necessary while installing.
- To monitor deployment in a new terminal:
$env:KUBECONFIG="$env:TEMP\kubeflow-config" kubectl config use-context kind-kubeflow k9s
- To access all AI-Streamliner tools:
.\Make access
Note: The access command automatically waits for all pods to be ready before starting port-forwarding. If some components are still in the ContainerCreating state, the script will wait until they are running.
-
To check if all prerequisite tools are installed:
make check-dependencies
-
To deploy all AI-Streamliner resources in a single command:
make streamliner
-
Ignore any errors or outputs in the terminal. If installation doesn't complete in 15 minutes, try again. The installation will either succeed or fail no intervention is necessary while installing.
-
To monitor deployment in a new terminal (make sure to set the context in other terminals before running make commands ):
export KUBECONFIG=/tmp/kubeflow-config; kubectl config use-context kind-kubeflow k9s
-
To access all AI-Streamliner tools:
make access
Note: The access command automatically waits for all pods to be ready before starting port-forwarding. If some components are still in the ContainerCreating state, the script will wait until they are running.
- You can install a stand-alone tool using the following template:
make <TOOL>
The available stand-alone deployments are kubeflow, mlflow, lakefs, and aim.
- You can uninstall retry any installation as well.
make delete-<TOOL>
-
You can install a stand-alone tool using the native Windows Makefile:
.\Make kubeflow .\Make mlflow .\Make aim .\Make lakefs
-
You can uninstall any installation:
.\Make delete-mlflow .\Make delete-aim .\Make delete-lakefs
-
To destroy the cluster:
.\Make destroy-cluster
-
To access AI Streamliner:
make access
This will open the dashboard at http://localhost:8080. Sign in with user@example.com/12341234
-
You can access individual tools using the following template:
make access-<TOOL>
-
To access AI Streamliner:
.\Make access
-
You can access individual tools using:
.\Make access-kubeflow .\Make access-mlflow .\Make access-aim .\Make access-lakefs
The available stand-alone deployments are kubeflow, mlflow, lakefs, and aim.
Stay tuned, as we will be releasing easy installation scripts for the following tools:
- minio
- keycloak
- mlflow
- aimstack
- lakefs
- Kubeflow Authentication Issues
-
If you encounter errors like "Jwks doesn't have key to match kid or alg from Jwt" when accessing Kubeflow, this is likely related to the
oauth2_proxy_kubeflow
cookie:- Clear Browser Cookies:
- Open your browser developer tools (F12 or right-click -> Inspect)
- Go to the Application/Storage tab
- Find and delete cookies for localhost, particularly
oauth2_proxy_kubeflow
- Refresh the page
- Clear Browser Cookies:
-
- When you create the kind cluster it sets the env var KUBECONFIG to the temporary kind config. If you find yourself missing your previous kubernetes contexts then use the command
unset KUBECONFIG
to use the default config file typically found here: ~/.kube/config. And if you need to use the kind context again use the commandexport KUBECONFIG=/tmp/kubeflow-config;
. - If you find want to troubleshoot a faulty installation step look at the makefile to identify which command is failing. Connect to the cluster and attempt to run the command manually. If it succeeds, run the make streamliner command again to continue with the full installation.