Skip to main content
In this lesson you’ll learn a reliable, repeatable workflow to install Kubeflow onto a Kubernetes cluster. We’ll cover prerequisites, the kustomize-based deploy flow (with a retry loop), how to check readiness, and how to access the Kubeflow UI and SDK from your workstation.
A blue-green gradient slide with the centered title "Installing Kubeflow." A small "© Copyright KodeKloud" appears in the bottom-left.

Prerequisites

High-level installation flow

  1. Clone or download the Kubeflow manifests repository to your local machine.
  2. Choose the kustomize overlay or directory you want to deploy (for example manifests or a specific overlay from the repo).
  3. Run kustomize build and pipe the output to kubectl apply. Use a retry loop to address ordering/timing issues during the initial deployment.
  4. Wait for pods and services to become ready.
  5. Port-forward the ingress gateway (or use your cluster ingress) to access the Kubeflow web UI.
  6. (Optional) Install the Kubeflow Pipelines Python SDK (kfp) locally to build and submit pipelines.

Clone the manifests repository

Clone the official manifests repository or your fork:
Replace the repo URL with your preferred source if you maintain a custom overlay. Applying the full manifest set can fail initially because some resources depend on others. Use a retry loop that runs kustomize build and applies the generated manifests until kubectl succeeds:
  • Replace <overlay-path> with the overlay or directory you intend to deploy (for example manifests or a specific overlay subdirectory).
  • --server-side performs a server-side apply, and --force-conflicts helps when resources already exist or are in conflict.
Kubeflow manifests are composed with kustomize. If you want a lighter install, remove or comment out components in the selected overlay before building. Expect a few retries during the first apply due to resource ordering and readiness dependencies.

Verify resources and wait for readiness

Check pods and other resources across namespaces to track progress:
If your installation uses another namespace or overlay, replace kubeflow accordingly. You can also inspect logs for pods that are not reaching Ready state:

Accessing the Kubeflow web UI

The Kubeflow UI is typically exposed inside the cluster via an ingress gateway. A common and simple way to access it from your workstation is to port-forward the Istio ingress gateway to a local port:
Then open the UI in your browser at: http://localhost:8080 If your cluster uses a different ingress (e.g., Ambassador, Contour, or a cloud load balancer), follow that ingress’s instructions to expose the Kubeflow UI.

Install the Kubeflow Pipelines SDK

To develop and submit Kubeflow Pipelines from your workstation, install the Python SDK:
After installation, you can author and submit pipeline runs using the kfp package and the Kubeflow Pipelines API.

Troubleshooting tips

  • If pods remain in CrashLoopBackOff or Pending, inspect pod events and container logs.
  • Ensure cluster nodes have enough CPU, memory and ephemeral storage for all components.
  • Network policies, restricted PodSecurityPolicies (or PSP replacements), or RBAC rules can block some controllers—check cluster admission controls.
  • If the Istio ingress Service is not present, verify the istio installation or the overlay you chose includes an ingress component.
Large Kubeflow installations can consume significant cluster resources. Verify your cluster has sufficient CPU, memory, and storage before deploying, and consider a trimmed overlay if resources are limited.

Useful commands quick reference

Watch Video