Chapter 2. OpenShift Serverless product architecture
You are viewing documentation for a release of Red Hat OpenShift Serverless that is no longer supported. Red Hat OpenShift Serverless is currently supported on OpenShift Container Platform 4.3 and newer.
2.1. Knative Serving
Knative Serving on OpenShift Container Platform builds on Kubernetes and Istio to support deploying and serving serverless applications.
It creates a set of Kubernetes Custom Resource Definitions (CRDs) that are used to define and control the behavior of serverless workloads on an OpenShift Container Platform cluster.
These CRDs can be used as building blocks to address complex use cases, such as rapid deployment of serverless containers, automatic scaling of Pods, routing and network programming for Istio components, or viewing point-in-time snapshots of deployed code and configurations.
2.1.1. Knative Serving components
The components described in this section are the resources that Knative Serving requires to be configured and run correctly.
- Knative service resource
service.serving.knative.devresource automatically manages the whole lifecycle of a serverless workload on a cluster. It controls the creation of other objects to ensure that an app has a route, a configuration, and a new revision for each update of the service. Services can be defined to always route traffic to the latest revision or to a pinned revision.
- Knative route resource
route.serving.knative.devresource maps a network endpoint to one or more Knative revisions. You can manage the traffic in several ways, including fractional traffic and named routes.
- Knative configuration resource
configuration.serving.knative.devresource maintains the required state for your deployment. Modifying a configuration creates a new revision.
- Knative revision resource
revision.serving.knative.devresource is a point-in-time snapshot of the code and configuration for each modification made to the workload. Revisions are immutable objects and can be retained for as long as needed. Cluster administrators can modify the
revision.serving.knative.devresource to enable automatic scaling of Pods in your OpenShift Container Platform cluster.
2.2. Knative Client
The Knative Client (
kn) extends the functionality of the
kubectl tools to enable interaction with Knative components on OpenShift Container Platform.
kn allows developers to deploy and manage applications without editing YAML files directly.
2.3. Knative Eventing
A developer preview version of Knative Eventing is available for use with OpenShift Serverless. However, this is not included in the OpenShift Serverless Operator and is not currently supported as part of this Technology Preview. For more information about Knative Eventing, including installation instructions and samples, see the Knative Eventing on OpenShift Container Platform documentation.