knkski | 2024-08-01 12:19:26 UTC | #1 Charmed Kubeflow (CKF) can be installed on any [CNCF certified](https://www.cncf.io/certification/software-conformance/#logos) Kubernetes, including AKS, EKS, GKE, Openshift and any `kubeadm`-deployed cluster. ## Prerequisites A working Kubernetes (K8s) cluster is required. The cluster must meet these requirements: * Be version 1.27-1.29 * Have a default [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) configured ## Bootstrap Juju CKF is deployed to Kubernetes with Juju. Before deployment, Juju must first be bootstrapped to the K8s cluster. For bootstrapping instructions, see [Get started with the Juju OLM](https://juju.is/docs/olm/get-started-with-juju). ## Create the `kubeflow` model To create a Juju model for CKF, run: ```bash juju add-model kubeflow ``` [note type="caution" status="Caution"] The model name must be `kubeflow` for deploying Charmed Kubeflow. [/note] See [Juju OLM | `juju add-model`](https://juju.is/docs/olm/juju-add-model) for more details. To deploy the most recent stable version of CKF, run: ```bash juju deploy kubeflow --trust --channel=1.9/stable ``` See [Charmhub | `kubeflow`](https://charmhub.io/kubeflow) for more details. [note] It may take up to 20 minutes for all charms to become active. [/note] To monitor the model with Juju: ```bash juju status --watch 5s ``` ## Access the Kubeflow dashboard To access the Kubeflow dashboard, you need to do the following: - [Set credentials for a static user](#set-credentials-for-a-static-user-5) - [Find the dashboard’s IP address and log in](#find-the-dashboards-ip-address-and-log-in-6) ### Set credentials for a static user Configure `dex-auth` with a username and password: ```bash juju config dex-auth static-username= juju config dex-auth static-password= ``` See [`juju config`](https://juju.is/docs/olm/juju-config) and [Configure](https://charmhub.io/dex-auth/configure) for more details. ### Find the dashboard’s IP address and log in To find the IP address of the Kubeflow dashboard, run:: ```bash kubectl get services -n kubeflow ``` See [Kubernetes | `kubectl get`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get) for more details. The Charmed Kubeflow dashboard can be accessed using the IP attached to the `istio-ingressgateway` component. If you are using MicroK8s with the `metallb` add-on, the dashboard should be accessible at the LoadBalancer IP, typically `http://10.64.140.43.nip.io`. Otherwise, it should be accessible at the LoadBalancer IP, ClusterIP or NodePort when configured. You can refer to the `gateway_service_type` [configuration option](https://charmhub.io/istio-gateway/configuration?channel=1.22/stable) for more information. [note] If you have to set up DNS, you should use the resolvable address used by `istio-ingressgateway`. [/note] If you are accessing the dashboard remotely, this URL can be made available over SSH and a SOCKS proxy — see [How to setup SSH](/t/10872) for more details. After you have accessed the dashboard, log in using the `static-username` and `static-password` you configured in [Set credentials for a static user](#set-credentials-for-a-static-user-5). ------------------------- sabdfl | 2020-11-10 06:32:03 UTC | #2 Surely just one page will suffice, since Kubeflow would install the same on any K8s cluster, with an extra paragraph for the fact that it's built in to MicroK8s? ------------------------- pedroleaoc | 2021-06-03 23:08:16 UTC | #4 ------------------------- zmraul | 2022-01-21 15:18:56 UTC | #5 I think steps 6 and 7 are reversed. When installing on Charmed Kubernetes, the istio-ingressgateway operator doesn't create an external IP address until the role it's patched. ------------------------- evilnick | 2022-01-25 16:15:07 UTC | #6 Thanks for pointing this out, for some k8s that could be an issue so I will swap it around ------------------------- natalia-nowakowska | 2022-02-12 20:37:03 UTC | #7 Point 4 needs a small update: it says 'You can create a model and give it a name, **e.g.** kubeflow' while it has to be named exactly **kubeflow**, otherwise the deployment leads to one of the apps getting blocked with message 'kubeflow-dashboard must be deployed to model named `kubeflow`: https://git.io/J6d35'. ------------------------- rohanrehman | 2022-11-30 14:08:43 UTC | #8 Has this been tested on 22.04? Jesus! what an ordeal. #NotaQuickStart ------------------------- ca-scribner | 2022-11-30 15:41:14 UTC | #9 Hey @rohanrehman, I do use Charmed Kubeflow with 22.04 and don't know of anything that blocks it. Do you have any details you could share to look into? Thanks! ------------------------- rohanrehman | 2022-12-01 03:06:38 UTC | #10 thanks for getting back. Adding `juju bootstrap microk8s --agent-version="2.9.22"` was the only solution that worked mind you... 2 clean installs (22.04 and 20.04), 32gig of ram (500GB SSD) on-prem bare metal. full kubeflow was problematic Any documentation on what features are missing in the kubeflow-lite? From a kubeflow-lite deploy to kubeflow, will this destroy all containers and "start from scratch". Thanks -------------------------