Skip to content

Commit

Permalink
docs: Include Kubeflow deployment guide
Browse files Browse the repository at this point in the history
Include a deployment guide that demonstrates how to use the Kubeflow
manifests cloned from the original repository to deploy Kubeflow.

Signed-off-by: Dimitris Poulopoulos <[email protected]>
  • Loading branch information
dpoulopoulos committed Apr 1, 2024
1 parent 64831d0 commit 0294eb6
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/source/manual-deployment/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ automate the Debian installation process using a preseed file.
pxe-server
debian-preseed
kubernetes
kubeflow
84 changes: 84 additions & 0 deletions docs/source/manual-deployment/kubeflow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Deploy Kubeflow

In this section, you will learn how to deploy [Kubeflow](https://www.kubeflow.org/) on your
Kubernetes cluster. Kubeflow is an open-source machine learning (ML) toolkit for Kubernetes. It is
designed to simplify the process of training, serving, and deploying ML models at scale.

Having a local instance of Kubeflow is useful for development and testing purposes. It allows you to
experiment with different ML models and workflows without incurring the costs of cloud resources. It
is an invaluable step for learning MLOps practices and understanding how Kubernetes works by
examing a real-world use case.

## What you'll need

To complete this guide, you will need the following:

* A running Kubernetes cluster. You can use the [Kubernetes cluster](kubernetes) you created in the
previous section.
* Kustomize installed on your local machine. You can install it by following the instructions in the
[official documentation](https://kubectl.docs.kubernetes.io/installation/kustomize/).

## Procedure

Follow the steps below to deploy Kubeflow on your Kubernetes cluster:

1. Clone the Kubeflow manifests repository:

```console
user:~$ git clone https://github.com/kubeflow/manifests.git
```

1. Change to the manifests directory:

```console
user:~$ cd manifests
```

1. Checkout a specific version of the Kubeflow manifests repository:

```console
user:~/manifests$ git checkout tags/v1.8.0
```

```{note}
This documentation uses version 1.8.0 of the Kubeflow manifests. You can replace `v1.8.0` with
the version you want to use.
```

1. Deploy Kubeflow using the Kustomize:

```console
user:~/manifests$ while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done
```

```{note}
The `while` loop retries the `kubectl apply` command until it succeeds. The whole process can
take up to 10 minutes.
```

## Verify

Verify that Kubeflow is running.

1. Check the status of the pods in the `kubeflow` namespace:

```console
user:~$ kubectl get pods -n kubeflow
```

```{note}
The output should show a list of pods running in the `kubeflow` namespace.
```

1. Port-forward the Istio Ingress Gateway service to access the Kubeflow dashboard:

```console
user:~$ kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80
```

1. Open a web browser and navigate to `http://localhost:8080`. You should see the Kubeflow
dashboard.

```{note}
The default username is `[email protected]` and the default password is `12341234`.
```

0 comments on commit 0294eb6

Please sign in to comment.