
The Kubeflow is dedicated to making deployments of machine learning (ML) workflows on Kubernetes simple, and you can easily deploy kubeflow on your local ubuntu machine by minikube.
Check compatibility
- kuberneters = 1.16
- kubeflow = 1.0.1

Install kfctl
-
Download kfctl tool https://github.com/kubeflow/kfctl/releases/download/v1.2.0/kfctl_v1.2.0-0-gbc038f9_linux.tar.gz
-
Installing
tar -xvf kfctl"your-version".tar.gz chmod +x kfctl sudo install kfctl /usr/local/bin/kfctl
Install Kubectl
-
Install lastest kubectl version
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" -
Edit Permission and move to /usr/local/bin folder
chmod +x kubectl && sudo mv kubectl /usr/local/bin/ -
Check kubectl version
kubectl version
Install minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube config set driver docker
Modify minikube permission(optional)
-
For MicroK8s to work without having to use
sudo, if you don’t setting this, please add sudo at following command.sudo addgroup minikube sudo usermod -a -G minikube $USER newgrp minikube sudo chown -f -R $USER ~/.minikube sudo chown -f -R $USER ~/.kube
Start minikube
-
In order to support GPU in minikube —diriver=none is nessasary, refer to https://minikube.sigs.k8s.io/docs/tutorials/nvidia_gpu/
minikube start --cpus 4 --memory 12g --disk-size 30g --driver=none --kubernetes-version v1.16.0
Enable GPU in Minikube(optional)
-
Install the nvidia driver, nvidia-docker and configure docker with nvidia as the default runtime: https://github.com/NVIDIA/nvidia-docker
-
Install NVIDIA’s device plugin:
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/master/nvidia-device-plugin.yml -
Edit default runtime in docker
-
add
"default-runtime": "nvidia"to/etc/docker/daemon.json{ "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } } }and restart docker by
systemctl restart docker
-
Deploy kubeflow
kfctl apply -V -f https://raw.githubusercontent.com/kubeflow/manifests/v1.0-branch/kfdef/kfctl_k8s_istio.v1.0.1.yaml
Install socat
-
If you are running minikube with –vm-driver=none, you need socat for port-forwarding
sudo apt install socat OR yum install -y socat
Access Kubeflow Dashboard
kubectl port-forward -n istio-system service/istio-ingressgateway 8080:80 --address=0.0.0.0
Now, you can enter website 0.0.0.0:8080 to start kubeflow.
Problem fix
-
Removing the local files from /tmp/juju-store-lock* and trying again should fix this.
sudo rm -r /tmp/juju* -
Port is in used
sudo lsof -i -P -n | grep PORT kill PID






