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%
如果您禁用高可用性(例如,将 |