Accessing the Kubeflow dashboard from other devices locally

Hello guys,

I just followed this guide to install kubeflow also this guide to install OpenLDAP.

I want to access the Kubeflow dashboard URL (http:10.64.140.43.nip.io) locally from other devices in the network, any help?

I’ve been looking for answers on this for ~6 months with no luck. My guess is that Canonical wants people to pay for production support, or there’s no support available for production deployments of charmed Kubeflow.

2 Likes

Hi @ahmed-alqulayti,

Sorry you’re having trouble. This is a tough one to give guidance on, because it really depends on your setup. Essentially what you’re looking to do is expose a service from the k8s cluster on your machine to the open network, and then connect to it from elsewhere. That really varies depending on what you’re running (local machine with ubuntu, vm in aws, etc).

this guide describes setting up remote access, but I know it hasn’t worked for everyone. We plan to write up something more substantial to help with this, but there’s a good chance it wont perfectly apply to your situation just because of all the different variables.

In the interim, I suggest looking is looking into the generic question of how to expose a service from your local kubernetes to your wider network. I think that’s the question you really need solved here, and that you’d have a better chance of getting a solution than waiting for us to make a specific guide.

Kind of related, for Kubeflow 1.7 (release ~March 2023) the istio gateway charm will add support for using a NodePort rather than just a loadbalancer. That might also make things a bit easier to expose Kubeflow to a small number of users on the network. We plan to make a guide for this after release, but the testing instructions in the PR will give a bare bones description of how to use in the interim.

2 Likes

Any success in making the guide ?

1 Like

Hello,

I’m also stuck at this same step, not able to access kubeflow home page with kubeflow.ubuntu.local URL. I’ve followed the install guide and installed charmed kubeflow on ubuntu 20.04, created the ingress resource. But when I try to access http://kubeflow.ubuntu.local it goes to 503 error.

Can someone please help?

You have mentioned that “how to expose a service from your local kubernetes to your wider network” is the way to go. But could you let us know which service should we target to expose? Is it the “istio-ingressgateway-workload” which has the external ip 10.64.140.43 or should it be the “istio-ingressgateway” service. Please clarify.

Even though scenarios are different and setups are different, it would be great if you can put together a guide that works well for a vanilla installation of charmed kubeflow.

thanks

Hey @gpotti,

I’m sorry, I’m not able to answer your specific blocker. Hopefully someone else can chime in.

I can answer:

You have mentioned that “how to expose a service from your local kubernetes to your wider network” is the way to go. But could you let us know which service should we target to expose? Is it the “istio-ingressgateway-workload” which has the external ip 10.64.140.43 or should it be the “istio-ingressgateway” service. Please clarify.

Your instincts were correct - you want to expose the istio-ingressgateway-workload (the one that gets an external IP). That is the workload that actually functions as the ingress

1 Like

Hello Andrew,

Thank you for the clarification. I had posted the same in the community slack channel and hopefully I will get some help from there. I am still stuck on this same issue. Meanwhile I will try to work on the istio-ingressgateway-workload expose option as well.

Thanks, Govindan

Hello, I find myself facing the same challenge. Has there been any advancement in resolving this issue?

I’ve followed this getting-started guide (https://charmed-kubeflow.io/docs/get-started-with-charmed-kubeflow) on ubuntu 22, and I’ve managed to make the dashboard accessible remotely with additional steps as follows.

  1. create ingress yaml file.
# my-ingress.yml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: kubeflow-ingress
  namespace: kubeflow
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: public
  rules:
  - http:
      paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: istio-ingressgateway-workload
              port:
                number: 80
  1. $ microk8s kubectl apply -f my-ingress.yml -n kubeflow

Now that the dashboard is accessible through http://localhost, you can set up route config for remote access.