Quick start guide to Kubeflow

Hi, @evilnick
I am using microk8s 1.21/stable, and microk8s.juju(–version 2.9.10-ubuntu-amd64).
I am stucking in cmd “juju bootstrap microk8s”.

ERROR preferred storage “microk8s.io/hostpath” not available

Is there any config for juju bootstrap or something I missed out?
Hope to hear your suggestions.

Hello, You’ll need to run microk8s enable storage dns first, but you should install the latest juju snap using sudo snap install juju --classic and use that, not the juju in microk8s.

1 Like

Hi, @robgibbon
I have done that cmds.
And I have use microk8s.juju and juju(from snap).
But still stuck in

ERROR preferred storage “microk8s.io/hostpath” not available Is there anying I missed out?

Thanks for your reply.

Hello again, Sometimes it can take a while until MicroK8s is ready after you run microk8s enable storage. Did you run microk8s status --wait-ready before bootstrapping juju? Maybe try just waiting a bit and then run juju bootstrap microk8s myk8s again after a few minutes.

2 Likes

Thanks for your reply.@robgibbon All the prerequisite addons are enabled perfectly. But still have the problems.

I’m having problems with this tutorial, I tried to install it exactly with these steps but it seems some of the pods just crash all the time.

dex-auth res:oci-image@a74f783 error 1 dex-auth charmhub 2.28/stable 78 kubernetes creating or updating custom resource definitions: ensuring custom res ource definition “REMOVED LINK” with version “v1beta1”: CustomResourceDefinition apiextensions k8s io “authcodes.dex.coreos.com” is invalid: spec.versions[0] schema.openAPIV3Schema: Required value: schemas ar e required

kubeflow-dashboard res:oci-image@858a90f error 1 kubeflow-dashboard charmhub stable 64 kubernetes creating or updating custom resources: getting custom resources: atte mpt count exceeded: getting custom resource definition “profiles kubeflow org”: custom resource definition “profiles ubeflow org” not found kubeflow-profiles res:profile-image@f4450cf error 1 kubeflow-profiles charmhub stable 57 kubernetes creating or updating custom resource definitions: ensuring custom res ource definition “serviceroles rbac istio io” with version “v1beta1”: CustomResourceDefinition apiextensions k8s io “serviceroles rbac stio io” is invalid: spec versions[0] schema openAPIV3Schema: Required value: schema s are required

istio-ingressgateway/0* error idle 10.1.0.68 15020/TCP,80/TCP,443/TCP,15029/TCP,15030/TCP,15031/TCP,15032/TCP,15443/TCP,15011/TCP,8060/TCP,853/TCP crash loop backoff: back-off 5m0s restarting failed contain er=istio-proxy pod=istio-ingressgateway-846b8b8b9-mxfm6_kubeflow(21db34af-5a0c-485a-a784-4b79fbad7a31)

Could you please double check your distribution?

P.S. your forum sucks, it thinks those errors contain links so removed dots.

Hello @pttr are you running microk8s in the 1.21/stable channel? Kubeflow currently doesn’t support any later versions. You can check with snap info microk8s.

Edit: I’m sorry I was just able to reproduce this with our instructions, there might be something broken on our side, we will try and fix this as soon as possible.

@pttr after further investigation we have discovered that this is an issue with the latest juju version. To bypass this for now, during bootstrap you can do the following: juju bootstrap microk8s --agent-version="2.9.22"

2 Likes

I have the kubeflow (following your quick guide with ubuntu 20.04) stucked facing this problem: registry.jujucharms.com/kubeflow-charmers/kfp-viz/oci-image@sha256:c90a5818043da47448c4230953b265a66877bd143e4bdd991f762cf47e2a16d6 is not uploding. Running the URL directly in the browser reveals a 404 error, also pinging the address it do not respond .

@alfax1962 thanks for the message. I just ran through everything from scratch again and the only thing I needed that was outside the tutorial was to patch a role for the istio-ingressgateway charm using:

kubectl patch role -n kubeflow istio-ingressgateway-operator -p '{"apiVersion":"rbac.authorization.k8s.io/v1","kind":"Role","metadata":{"name":"istio-ingressgateway-operator"},"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["*"]}]}' 

Did you use the --agent-version="2.9.22" as @dominik.f mentioned? Apart from that I’m not sure what else might be going wrong. If you could provide juju status and juju debug-log info for the failing charm there might be something helpful there. I’d also suggest doing a sudo snap remove microk8s --purge and trying again - perhaps something was left in microk8s that interacted with this?

Thank you @ca-scribner very much for your prompt reply. All was solved. The problem was my network: the site didn’t answer in the timing required by kubernetes. After some hours the pod initialized correctly. Many regards

1 Like

You’re welcome! Glad to hear it

The controller can work with different models, which map to namespaces in Kubernetes. It is recommended to set up a specific model for Kubeflow:

this is not in fact the case. if you pick any name besides kubeflow for the model… the kubeflow desktop unit errors out… just heads up

Yeah sorry I thought we had that model name issue covered in this guide, but must have been an old one. Atm there’s a hard-coded assumption in the upstream kubeflow dashboard code that expects kubeflow to deployed in the k8s namespace kubeflow.

1 Like

ah, no worries…

Any idea on how or where to access spark in the full bundle ? Posted a ticket to the github here

https://github.com/canonical/bundle-kubeflow/issues/453

I am a total k8s newb so perhaps it’s in the full version but not called out explicitly in the application names or ?

We all start as newbs :slight_smile:

I see @dominik.f replied on the issue, but I also subscribed to it so if his suggestion doesn’t work out reply and we can try to sort it out

1 Like

thank you Andrew, I have actually hit a bug it seems… so I need to tear down the controller and start from scratch… once that’s done I will retry

the bug is described here Bug #1968105 “Juju+microk8s: very weird behaviour” : Bugs : juju

edit: I’ve reconnected my client / controller and done the juju deploy spark-k8s

from there I am a bit lost… going to try to just … load a basic pyspark session… there’s not much documentation on the charmhub about this tho

Edit2: hmmm I seem to have notebooks just scheduling but never getting completed… my juju status shows an error on dex-auth/2

hook failed: "ingress-relation-broken"

Im going to just tear down and start from scratch… and then at the end add juju deploy spark-k8s and retry

Edit3: well after stopping and restarted the notebook it completed… I then tried a basic hello world NB with pyspark… I am assuming I need to set some… environment variables and point now to the spark-k8s application/unit in juju?

image

I’ve been trying to port forward or create tunnel to access this dashboard since I installed kubeflow on my server. with the socks tunnel I get an error about the hostname not having an ip associated with it and I don’t know exactly how to deal with it

Hey, try this tutorial for setting up remote access to Kubeflow - Set up remote access | Charmed Kubeflow - hopefully it will help get you going

Rob

3 Likes

@robgibbon

Hey, Is there a tutorial about how to use openebs as a default storage class in kubeflow ?

I am looking forward to your reply. :grinning: