This addon makes Machine Learning easy by deploying Kubeflow on top of MicroK8s.
ⓘ Caution: The minimum requirements for Kubeflow are 4 CPUs, 12GB memory and 50GB storage. Be sure your system can support that before enabling it.
sudo microk8s enable kubeflow
There are several options you can set when enabling Kubeflow. These are passed as environment variables. For example, debugging output can be turned on like this:
KUBEFLOW_DEBUG=true microk8s.enable kubeflow
The list of options:
KUBEFLOW_BUNDLE: This determines which bundle is deployed. The three preset options are
edge, which correspond to these bundles, respectively:
Here is more information about each bundle:
full: Includes each Kubeflow service. It’s recommended to have at least 14Gb of RAM and 60Gb disk space.
lite: Eliminates less-used services from the
fullbundle, while keeping the user-friendly dashboard. This bundle is oriented towards deploying nicely on a laptop.
edge: Includes only training and serving operators, and does not include a dashboard. This bundle is suitable for lower-resource environments.
You can also directly specify a charm store URL, such as
KUBEFLOW_CHANNEL: Which risk channel to deploy the Kubeflow bundle from. Defaults to
stable, and should mostly be left alone. You can set it to
edgehowever, if you want to deploy a bundle that is not yet stable.
KUBEFLOW_DEBUG: Enables debugging output. Useful for if enabling the addon fails.
KUBEFLOW_HOSTNAME: Sets the hostname that the Kubeflow dashboard responds to. This defaults to http://x.x.x.x.xip.io/, where
x.x.x.xcomes from MetalLB. Accepts hostname with or without port set, such as
If you set this to a hostname that’s not publically accessible, you will need to adjust MicroK8s’ DNS setup. For example, if you enable this addon on a machine named
foo.lan, and you have a DNS service set up at
192.168.1.1, you will need to run this command:
microk8s.kubectl edit configmap -n kube-system coredns
And edit the line that says
forward . 188.8.131.52 184.108.40.206to say
forward . 192.168.1.1. This will allow CoreDNS to resolve your LAN hostnames within MicroK8s.
KUBEFLOW_IGNORE_MIN_MEM: It is recommended to have at least 14 Gb of RAM for enabling Kubeflow. If you would like to enable Kubeflow with less RAM than this, set
KUBEFLOW_NO_PROXY: If you have a local proxy setup, you will need to set this option. See https://juju.is/docs/configuring-offline-usage for more information.
KUBEFLOW_AUTH_PASSWORD: This will set the password for the Kubeflow dashboard. If not set, a random password will be generated.