Active/passive high availability (HA) is a standard feature of Kubernetes APIs that helps to ensure that APIs stay operational if a disruption occurs. In an HA deployment, if an active controller crashes or is deleted, another controller is available to take over processing of the APIs that were being serviced by the controller that is now unavailable.

Active/passive HA in OpenShift Serverless is available through leader election, which is enabled by default after the Knative Serving control plane is installed.

When using a leader election HA pattern, instances of controllers are already scheduled and running inside the cluster before they are required. These controller instances compete to use a shared resource, known as the leader election lock. The instance of the controller that has access to the leader election lock resource at any given time is referred to as the leader.

Configuring high-availability OpenShift Serverless components

This guide provides information about which components of OpenShift Serverless are configured as high availability (HA) by default, and how you can modify HA settings.

HA functionality is available by default on OpenShift Serverless for the autoscaler-hpa, controller, activator , kourier-control, and kourier-gateway components. These components are configured with two replicas by default.

Disabling high availability

You can disable HA for Knative Serving components by changing the configuration of the KnativeServing.spec.highAvailability field.

Do not modify any YAML contained inside the config field. Some of the configuration values in this field are injected by the OpenShift Serverless Operator, and modifying them will cause your deployment to become unsupported.

  • An OpenShift Container Platform account with cluster administrator access.

  • Installed the OpenShift Serverless Operator and Knative Serving.

  1. In the OpenShift Container Platform web console, navigate to the CatalogOperatorHubInstalled Operators page.

  2. Select the OpenShift Serverless Operator.

  3. Click Knative Serving in the list of Provided APIs for the OpenShift Serverless Operator to go to the Knative Serving tab.

    Installed Operators page
  4. Click on knative-serving in the Knative Serving tab.

  5. Click on YAML in the knative-serving page.