Overview of installation choices for various environments
This document provides information about setting up Kubeflow in various environments.
Before you begin
It’s important that you have some knowledge of the following systems and tools:
If you plan to deploy Kubeflow on an existing Kubernetes cluster, review theseKubernetes system requirements.
Minimum system requirements
The Kubernetes cluster must meet the following minimum requirements:
-
Your cluster must include at least one worker node with a minimum of:
- 4 CPU
- 50 GB storage
- 12 GB memory
-
The recommended Kubernetes version is 1.14. Kubeflow has been validated and tested on Kubernetes 1.14.
- Your cluster must run at least Kubernetes version 1.11.
- Kubeflow does not work on Kubernetes 1.16.
- Older versions of Kubernetes may not be compatible with the latest Kubeflow versions. The following matrix provides information about compatibility between Kubeflow and Kubernetes versions.
Kubernetes Versions | Kubeflow 0.4 | Kubeflow 0.5 | Kubeflow 0.6 | Kubeflow 0.7 | Kubeflow 1.0 |
---|---|---|---|---|---|
1.11 | compatible | compatible | incompatible | incompatible | incompatible |
1.12 | compatible | compatible | incompatible | incompatible | incompatible |
1.13 | compatible | compatible | incompatible | incompatible | incompatible |
1.14 | compatible | compatible | compatible | compatible | compatible |
1.15 | incompatible | compatible | compatible | compatible | compatible |
1.16 | incompatible | incompatible | incompatible | incompatible | incompatible |
Kubeflow Deployment Configurations
The following table lists the options for installing Kubeflow on an existing Kubernetes cluster and links to detailed instructions. These solutions are vendor neutral and are governed by consensus within the Kubeflow community.
Deployment config | Description |
---|---|
kfctl_k8s_istio.yaml | This config creates a vanilla deployment of Kubeflow with all its core components without any external dependencies. The deployment can be customized based on your environment needs. Follow instructions: Kubeflow Deployment with kfctl_k8s_istio |
kfctl_istio_dex.yaml | This config creates a Kubeflow deployment with all its core components, and uses Dex and Istio for vendor-neutral authentication. Follow instructions: Multi-user, auth-enabled Kubeflow with kfctl_istio_dex |
Overview of installation options
The following diagram gives an overview of the options for deploying Kubeflow:
The following section describes the options in more detail and links to the relevant instructions.
Installing Kubeflow
There are various ways to install Kubeflow. Choose one of the following options to suit your environment (public cloud, existing Kubernetes cluster, or a single-node cluster which you can use on a desktop or server or in the cloud).
Installing Kubeflow on a public cloud
Choose the Kubeflow deployment guide for your chosen cloud:
- To use Kubeflow on Google Cloud Platform (GCP) and Kubernetes Engine (GKE), follow the GCP deployment guide.
- To use Kubeflow on Amazon Web Services (AWS), follow the AWS deployment guide.
- To use Kubeflow on Microsoft Azure Kubernetes Service (AKS), follow the AKS deployment guide.
- To use Kubeflow on IBM Cloud (IKS), follow the IKS deployment guide.
- To use Kubeflow on OpenShift, follow the OpenShift deployment guide.
Installing Kubeflow on an existing Kubernetes cluster
Follow the guide to deploying Kubeflow on Kubernetes.
Installing Kubeflow on desktop, server, or cloud in a single-node Kubernetes cluster
You can use the following options to run Kubeflow on a single-node Kubernetes cluster, which you can use on a desktop or server or in the cloud.
Choose the guide for your operating system or environment:
- To use Kubeflow on Linux, follow the Linux deployment guide.
- To use Kubeflow on MacOS, follow the MacOS deployment guide.
- To use Kubeflow on Windows, follow the Windows deployment guide.
- To use MiniKF (mini Kubeflow) on Google Cloud Platform, follow the guide to MiniKF on GCP.
Configuration quick reference
Below is a matrix of the platforms where you can deploy Kubeflow and the corresponding manifest files that specify the default configuration for each platform. The matrix shows the same manifests as the installation guides. The matrix is therefore an alternative way of accessing the information in the installation section above.
Deployment platform | Manifest | Deployment guide |
---|---|---|
Existing Kubernetes cluster using a standard Kubeflow installation | kfctl_k8s_istio.v1.0.2.yaml | Docs |
Existing Kubernetes cluster using Dex for authentication | kfctl_istio_dex.v1.0.2.yaml | Docs |
Amazon Web Services (AWS) using the standard setup | kfctl_aws.v1.0.2.yaml | Docs |
Amazon Web Services (AWS) with authentication | kfctl_aws_cognito.v1.0.2.yaml | Docs |
Microsoft Azure | kfctl_k8s_istio.v1.0.2.yaml | Docs |
Google Cloud Platform (GCP) with Cloud Identity-Aware Proxy (Cloud IAP) | kfctl_gcp_iap.v1.0.2.yaml | Docs |
IBM Cloud (IKS) | kfctl_ibm.v1.0.2.yaml | Docs |
OpenShift | kfctl_openshift.yaml | Docs |
Installing command line tools
The following information is useful if you need or prefer to use command line tools for deploying and managing Kubeflow:
-
Download the kfctl binary from the Kubeflow releases page.
-
Follow the kubectl installation and setup instructions from the Kubernetes documentation. As described in the Kubernetes documentation, your kubectl version must be within one minor version of the Kubernetes version that you use in your Kubeflow cluster.
-
Follow the kustomize installation and setup instructions from the guide tokustomize in Kubeflow. Make sure that you have the minimum required version of kustomize: 2.0.3 or later.
Understanding the Kubeflow versioning policies
With the launch of Kubeflow v1.0, the Kubeflow community attributes stable status to those applications and other components that meet the required level of stability, supportability, and upgradability.
Read about the Kubeflow versioning policies, including the stable status of Kubeflow applications and deployment platforms.
Troubleshooting
See the Kubeflow troubleshooting guide.
Next steps
- Read the documentation for in-depth instructions on using Kubeflow.
- Explore the tutorials and codelabs for learning and trying out Kubeflow.
- Build machine-learning pipelines with the Kubeflow Pipelines SDK.