Skip to content

Instantly share code, notes, and snippets.

@cupdike
Created February 24, 2022 18:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cupdike/6b2d9916ff89faf522c2fda85bec76ff to your computer and use it in GitHub Desktop.
Save cupdike/6b2d9916ff89faf522c2fda85bec76ff to your computer and use it in GitHub Desktop.

Set up a Dev Kubeflow Environment Using Kubeflow Manifests, Kustomize and Rancher Desktop

Rancher Desktop provides a solid Kubernetes cluster platform for developer workstations. Here, we'll use it to install Kubeflow via the Manifests project with Kustomize. For the best experience, use a release version and make sure you follow the README guidance specific to that version (include prerequisite versions of Kustomize and Kubeflow).

Steps

  • Install Rancher Desktop
  • Go to the Kubeflow project
  • Use the selector to find the latest stable release (or whatever release you prefer) and select it (will reload the README for that specific version)
  • Go down to the prerequisites section and observe the supported kubeflow and kustomize versions
  • You likely will need to run a different older version of kustomize. The easiest way may be to download the binary from here:
  • In Rancher Desktop, set the recommended Kubernetes version (or just above it).
    • Recommend the containerd runtime.
    • Resources: 16 GB RAM, 8 CPU known to work, not sure how low you can go.
  • Start manually running the kustomize statements in the README
    • I've just had better luck manually than using while loop
    • You can leave out things you know you won't need or don't want.
    • As needed, rerun steps unless/until they succeed.

Sample run

  • Manifests version 1.4.1
    • Prequisites
      • Kustomize 3.2.0
      • Kubernetes 1.19 (went with 1.20)
kustomize build common/cert-manager/cert-manager/base | kubectl apply -f -\nkustomize build common/cert-manager/kubeflow-issuer/base | kubectl apply -f -
kustomize build common/cert-manager/cert-manager/base | kubectl apply -f -
kustomize build common/cert-manager/kubeflow-issuer/base | kubectl apply -f -
kustomize build common/istio-1-11/istio-crds/base | kubectl apply -f -
kustomize build common/istio-1-9/istio-crds/base | kubectl apply -f -
kustomize build common/istio-1-9/istio-namespace/base | kubectl apply -f -
kustomize build common/istio-1-9/istio-install/base | kubectl apply -f -
kustomize build common/istio-1-9/istio-install/base | kubectl apply -f -
kustomize build common/dex/overlays/istio | kubectl apply -f -
kustomize build common/oidc-authservice/base | kubectl apply -f -
kustomize build common/kubeflow-namespace/base | kubectl apply -f -

# NOT installing KNative at this time
kustomize build common/kubeflow-roles/base | kubectl apply -f -
kustomize build common/istio-1-9/kubeflow-istio-resources/base | kubectl apply -f -

# Use PNS version since not using Docker runtime (using containerd), per instructions
kustomize build apps/pipeline/upstream/env/platform-agnostic-multi-user-pns | kubectl apply -f -
kustomize build apps/kfserving/upstream/overlays/kubeflow | kubectl apply -f -
kustomize build apps/katib/upstream/installs/katib-with-kubeflow | kubectl apply -f -
kustomize build apps/centraldashboard/upstream/overlays/istio | kubectl apply -f -
kustomize build apps/admission-webhook/upstream/overlays/cert-manager | kubectl apply -f -
kustomize build apps/jupyter/notebook-controller/upstream/overlays/kubeflow | kubectl apply -f -
kustomize build apps/jupyter/jupyter-web-app/upstream/overlays/istio | kubectl apply -f -
kustomize build apps/profiles/upstream/overlays/kubeflow | kubectl apply -f -
kustomize build apps/volumes-web-app/upstream/overlays/istio | kubectl apply -f -
kustomize build apps/tensorboard/tensorboards-web-app/upstream/overlays/istio | kubectl apply -f -\n
kustomize build apps/tensorboard/tensorboard-controller/upstream/overlays/kubeflow | kubectl apply -f -
kustomize build apps/training-operator/upstream/overlays/kubeflow | kubectl apply -f -
kustomize build apps/mpi-job/upstream/overlays/kubeflow | kubectl apply -f -
kustomize build common/user-namespace/base | kubectl apply -f -

# Run this in the background or as needed.
kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80

# Use the credentials to log in:  user@example.com / 12341234
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment