15.2. Knative 部署的高可用性
默认情况下,Knative Serving activator
, autoscaler,
,autoscaler
-hpacontroller
,webhook
,domain-mapping
,domainmapping-webhook
,kourier-control
, 和 kourier-gateway
组件提供高可用性(HA)。您可以通过修改 KnativeServing
自定义资源 (CR) 中的 spec.high-availability.replicas
值来更改这些组件的副本数。
15.2.1. 为 Knative Serving 配置高可用性副本 复制链接链接已复制到粘贴板!
要为有资格的部署资源指定三个最小副本,请将自定义资源中的 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
Installed Operators。 -
选择
knative-serving
命名空间。 - 点 OpenShift Serverless Operator 的 Provided APIs 列表中的 Knative Serving 来进入 Knative Serving 选项卡。
- 点 knative-serving,然后使用 knative-serving 页面中的 YAML 选项卡。
修改
KnativeServing
CR 中的副本数量:YAML 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您还可以指定特定工作负载的副本数量。
注意特定于工作负载的配置会覆盖 Knative Serving 的全局设置。
YAML 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否遵循高可用性限制:
示例命令
oc get hpa -n knative-serving
$ oc get hpa -n knative-serving
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.2. 覆盖中断预算 复制链接链接已复制到粘贴板!
Pod Disruption Budget (PDB)是 Kubernetes API 的一个标准功能,有助于限制因维护原因需要重新调度 pod 时对应用程序的中断。
流程
-
通过修改
KnativeServing
自定义资源(CR)中的minAvailable
配置值来覆盖特定资源的默认 PDB。
PDB 示例,minAvailable
设置为 70%
例如,如果您通过将 high-availability.replicas
值更改为 1
,请确保也将对应的 PDB minAvailable
值更新为 0。否则,pod 中断预算会阻止自动集群或 Operator 更新。