Install Kubeflow on OpenShift

Instructions for deploying Kubeflow on an OpenShift cluster from the command line

This guide describes how to use the kfctl CLI to deploy Kubeflow 1.6 on an existing OpenShift 4.9 cluster.


OpenShift 4 cluster

  • You need to have access to an OpenShift 4.9 cluster as cluster-admin to be able to deploy Kubeflow.
  • You can use Code Ready Containers (CRC) to run a local cluster, use to create a new cluster or use an existing cluster.
  • Install oc command-line tool to communicate with the cluster.

Code Ready Containers

If you are using Code Ready Containers, you need to make sure you have enough resources configured for the VM:


16 GB memory
45 GB disk space


10 GB memory
30 GB disk space (default for CRC)

Installing Kubeflow

Use the following steps to install Kubeflow 1.6 on OpenShift 4.9.

  1. Clone the manifests repo in the opendatahub-io org.
git clone --branch v1.6-branch-openshift
  1. Create kubeflow namespace
oc create ns kubeflow
  1. Deploy all Kubeflow components under openshift stack using the following command:
while ! kustomize build openshift/example/istio | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done
  1. Wait until all the pods are running.

    $ oc get pods -n kubeflow
    NAME                                               READY   STATUS              RESTARTS   AGE
    admission-webhook-deployment-6748884cff-wb7kp      1/1     Running             0          42h
    cache-deployer-deployment-799f449d59-5zl2l         1/1     Running             0          42h
    cache-server-67849767c5-7w44j                      1/1     Running             0          42h
    centraldashboard-78f95899fc-8rt8k                  1/1     Running             0          42h
    metadata-envoy-deployment-67fd74f564-tsrxm         1/1     Running             0          42h
    metadata-grpc-deployment-9d547547d-g9cq7           1/1     Running             0          42h
    metadata-writer-7776fc6f6f-4f4hp                   1/1     Running             0          42h
    minio-5cb67d5f6d-l9665                             1/1     Running             0          42h
    ml-pipeline-6d4fbc667b-hhqsw                       1/1     Running             0          42h
    ml-pipeline-persistenceagent-667c448c65-r9sn5      1/1     Running             0          42h
    ml-pipeline-scheduledworkflow-5b9769fc8b-s9nt8     1/1     Running             0          42h
    ml-pipeline-ui-6f9f496b7-9rr4s                     1/1     Running             0          42h
    ml-pipeline-viewer-crd-77ccffd6d4-n4x55            1/1     Running             0          42h
    ml-pipeline-visualizationserver-6c7b448b99-5ttn4   1/1     Running             0          42h
    mysql-7659b8f58c-npr57                             1/1     Running             0          42h
    profiles-deployment-7c8446984b-nvvh7               2/2     Running             0          42h
    workflow-controller-7899f6947-gz7km                1/1     Running             0          42h    
  2. The command below looks up the URL of the Kubeflow user interface assigned by the OpenShift cluster. You can open the printed URL in your browser to access the Kubeflow user interface.

    oc get routes -n istio-system istio-ingressgateway -o jsonpath='http://{}/'


Was this page helpful?

Last modified September 6, 2022: Update OpenShift docs for KF 1.6 (#3342) (d371b87)