Follow this guide to install Knative components on a platform of your choice.
Choosing a Kubernetes cluster
To get started with Knative, you need a Kubernetes cluster. If you aren't sure which Kubernetes platform is right for you, see Picking the Right Solution.
We provide information for installing Knative on Google Kubernetes Engine, IBM Cloud Kubernetes Service, IBM Cloud Private, Azure Kubernetes Service, Minikube, OpenShift and Pivotal Container Service clusters.
Knative depends on an Ingress/Gateway which is capable of routing requests to Knative Services.
Installing Knative with Ambassador
Installing with Ambassador gives us an alternative to installing a service mesh for routing to applications with the Knative Serving component. Note that Istio is required for the Knative Eventing component.
Installing Knative with Gloo
Install with Gloo: Gloo functions as a lightweight gateway for Knative. Choose this option if you don't require service mesh in your cluster and want a lighter-weight alternative to Istio. Note that the Knative Eventing component is not supported by Gloo at this time.
Installing Knative with Istio
Istio is a popular service mesh that includes a Knative-compatible ingress. Choose this option if you wish to use Istio service mesh features. You will also need to choose this installation option if you wish to use the Knative Eventing component, which currently depends on Istio.
There are several options when installing Knative:
Comprehensive install – Comes with the default versions of all Knative components as well as a set of observability plugins. Quickest option for setup.
Limited install – Installs a subset of Knative components.
Custom install – Takes longer, but allows you to choose exactly which components and oberservability plugins to install.
For new users, we recommend the comprehensive install to get you up and running quickly.
Follow these step-by-step guides for setting up Kubernetes and installing Knative components.
Comprehensive install guides
The guides below show you how to create a Kubernetes cluster with the right specs for Knative on your platform of choice, then walk through installing all available Knative components and a set of observability plugins.
- Knative Install on Azure Kubernetes Service
- Knative Install on Gardener
- Knative Install on Google Kubernetes Engine
- Knative Install on IBM Cloud Kubernetes Service
- Knative Install on IBM Cloud Private
- Knative Install on Minikube
- Knative Install on Pivotal Container Service
If you already have a Kubernetes cluster you're comfortable installing alpha software on, use the following guide to install all Knative components:
Limited install guides
The guides below install some of the available Knative components, without all available observability plugins, to minimize the disk space used for install.
- Knative Install on Docker for Mac
- Knative Install on OpenShift
- Knative Install on OpenShift via Operator
Custom install guide
To choose which components and observability plugins to install, follow the custom install guide:
> Note: If need to set up a Kubernetes cluster with the correct > specifications to run Knative, you can follow any of the install instructions > through the creation of the cluster, then follow the > Performing a Custom Knative Installation guide.
Observability install guide
Follow this guide to install and set up the available observability plugins on a Knative cluster.
Deploying an app
Now you're ready to deploy an app:
Follow the step-by-step Getting Started with Knative App Deployment guide.
View the available sample apps and deploy one of your choosing.
Walk through the Google codelab, Using Knative to deploy serverless applications to Kubernetes.
Configuring Knative Serving
After your Knative installation is running, you can set up a custom domain with a static IP address to be able to use Knative for publicly available services and set up an Istio IP range for outbound network access:
- Assign a static IP address
- Configure a custom domain
- Configure outbound network access
- Configuring HTTPS with a custom certificate