High availability (HA) is available by default for the Knative Serving activator
, autoscaler
, autoscaler-hpa
, controller
, webhook
, domain-mapping
, domainmapping-webhook
, kourier-control
, and kourier-gateway
components, which are configured to have two replicas each. You can change the number of replicas for these components by modifying the spec.high-availability.replicas
value in the KnativeServing
custom resource (CR).
To specify three minimum replicas for the eligible deployment resources, set the value of the field spec.high-availability.replicas
in the custom resource to 3
.
You have cluster administrator permissions on OpenShift Container Platform, or you have cluster or dedicated administrator permissions on Red Hat OpenShift Service on AWS or OpenShift Dedicated.
The OpenShift Serverless Operator and Knative Serving are installed on your cluster.
In the OpenShift Container Platform web console Administrator perspective, navigate to OperatorHub → Installed Operators.
Select the knative-serving
namespace.
Click Knative Serving in the list of Provided APIs for the OpenShift Serverless Operator to go to the Knative Serving tab.
Click knative-serving, then go to the YAML tab in the knative-serving page.
Modify the number of replicas in the KnativeServing
CR:
apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
name: knative-serving
namespace: knative-serving
spec:
high-availability:
replicas: 3
You can also specify the number of replicas for a specific workload.
Workload-specific configuration overrides the global setting for Knative Serving. |
apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
name: knative-serving
namespace: knative-serving
spec:
high-availability:
replicas: 3
workloads:
- name: webhook
replicas: 4
Verify that the high availability limits are respected:
$ oc get hpa -n knative-serving
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
activator deployment/activator 0%/100% 3 22 3 2m24s
webhook deployment/webhook 2%/100% 4 8 4 2m23s
A Pod Disruption Budget (PDB) is a standard feature of Kubernetes APIs that helps limit the disruption to an application when its pods need to be rescheduled for maintenance reasons.
Override the default PDB for a specific resource by modifying the minAvailable
configuration value in the KnativeServing
custom resource (CR).
minAvailable
seting of 70%apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
name: knative-serving
namespace: knative-serving
spec:
podDisruptionBudgets:
- name: activator-pdb
minAvailable: 70%
If you disable high-availability, for example, by changing the |