Knative Serving 的activator、autoscaler、autoscaler-hpa、controller、webhook、domain-mapping、domainmapping-webhook、kourier-control 和 kourier-gateway组件默认情况下都具有高可用性 (HA),每个组件都配置为具有两个副本。可以通过修改KnativeServing自定义资源 (CR) 中的spec.high-availability.replicas值来更改这些组件的副本数量。
要为符合条件的部署资源指定三个最小副本,请将自定义资源中spec.high-availability.replicas字段的值设置为3。
您拥有 OpenShift Container Platform 的集群管理员权限,或者您拥有 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 的集群或专用管理员权限。
OpenShift Serverless Operator 和 Knative Serving 已安装在您的集群中。
在 OpenShift Container Platform Web 控制台的**管理员**视角中,导航到**OperatorHub** → **已安装的 Operator**。
选择knative-serving命名空间。
在 OpenShift Serverless Operator 的**提供的 API**列表中单击**Knative Serving**,转到**Knative Serving**选项卡。
单击**knative-serving**,然后转到**knative-serving**页面中的**YAML**选项卡。
修改KnativeServing CR 中的副本数量
apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
name: knative-serving
namespace: knative-serving
spec:
high-availability:
replicas: 3
您还可以为特定工作负载指定副本数量。
|
针对工作负载的配置会覆盖 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
验证是否遵守高可用性限制
$ 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
Pod 中断预算 (PDB) 是 Kubernetes API 的标准功能,它有助于在需要重新安排 pod 进行维护时限制对应用程序的中断。
通过修改KnativeServing自定义资源 (CR) 中的minAvailable配置值来覆盖特定资源的默认 PDB。
minAvailable设置为 70% 的 PDB 示例apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
name: knative-serving
namespace: knative-serving
spec:
podDisruptionBudgets:
- name: activator-pdb
minAvailable: 70%
|
如果您禁用高可用性(例如,将 |