Add-on: Kubeflow
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.
microk8s enable kubeflow --bundle=cs:kubeflow
There are several options you can set when enabling Kubeflow. You can run this command to view the list of available options:
microk8s enable kubeflow -- --help
The list of options are shown below. Each one can be passed in as a command-line flag (e.g. --debug
), or as a prefixed environment variable (e.g. KUBEFLOW_DEBUG=true
)
--bundle
(orKUBEFLOW_BUNDLE
): This determines which bundle is deployed. The three preset options arefull
,lite
, andedge
, which correspond to these bundles, respectively:https://jaas.ai/kubeflow
https://jaas.ai/u/kubeflow-charmers/kubeflow-lite/
https://jaas.ai/u/kubeflow-charmers/kubeflow-edge/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 thefull
bundle, 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
cs:kubeflow-123
.--channel
(orKUBEFLOW_CHANNEL
): Which risk channel to deploy the Kubeflow bundle from. Defaults tostable
, and should mostly be left as this value. You can set it tocandidate
,beta
, oredge
however, if you want to deploy a bundle that is not yet stable.--debug
(orKUBEFLOW_DEBUG
): Enables debugging output. Useful for if enabling the addon fails. As a command-line flag, can be set or unset with--debug
/--no-debug
. As an environment variable, can be set totrue
orfalse
.--hostname
(orKUBEFLOW_HOSTNAME
): Sets the hostname that the Kubeflow dashboard responds to. This defaults to http://x.x.x.x.nip.io/, wherex.x.x.x
comes from MetalLB. Accepts the hostname with or without a port set, such asfoo.lan
orfoo.lan:8080
.If you set this to a hostname that’s not publicly 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 at192.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 . 8.8.8.8 8.8.4.4
to sayforward . 192.168.1.1
. This will allow CoreDNS to resolve your LAN hostnames within MicroK8s.--ignore-min-mem
(orKUBEFLOW_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, pass in the--ignore-min-mem
flag, or set theKUBEFLOW_IGNORE_MIN_MEM=true
environment variable.--no-proxy
(orKUBEFLOW_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.--password
(orKUBEFLOW_AUTH_PASSWORD
): This will set the password for the Kubeflow dashboard. If not set, a random password will be generated which you will be prompted to accept.
Last updated 2 months ago. Help improve this document in the forum.