10.2. 高可用性
高可用性 (HA) 是 Kubernetes API 的标准功能,有助于确保在出现中断时 API 保持正常运行。在 HA 部署中,如果活跃控制器崩溃或被删除,另一个控制器就可以使用。此控制器会接管处理由现在不可用的控制器提供服务的 API。
OpenShift Serverless 中的 HA 可通过领导选举机制获得,该机制会在安装 Knative Serving 和 Eventing control plane 后默认启用。在使用领导选举 HA 模式时,控制器实例在需要前应该已在集群内调度并运行。这些控制器实例争用共享资源,即领导选举锁定。在任何给定时间可以访问领导选举机制锁定资源的控制器实例被称为领导 (leader) 。
OpenShift Serverless 中的 HA 可通过领导选举机制获得,该机制会在安装 Knative Serving 和 Eventing control plane 后默认启用。在使用领导选举 HA 模式时,控制器实例在需要前应该已在集群内调度并运行。这些控制器实例争用共享资源,即领导选举锁定。在任何给定时间可以访问领导选举机制锁定资源的控制器实例被称为领导 (leader) 。
10.2.1. 为 Knative Eventing 配置高可用性副本
默认情况下,Knative Eventing eventing-controller
、eventing-webhook
、imc-controller
、imc-dispatcher
和 mt-broker-controller
组件都会具有高可用性 (HA) 。您可以通过修改 KnativeEventing
自定义资源 (CR) 中的 spec.high-availability.replicas
值来更改这些组件的副本数。
对于 Knative Eventing,HA 不会扩展 mt-broker-filter
和 mt-broker-ingress
部署。如果需要多个部署,请手动扩展这些组件。
先决条件
- 在 OpenShift Container Platform 上具有集群管理员权限,或者对 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 有集群或专用管理员权限。
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Eventing。
流程
-
在 OpenShift Container Platform web 控制台的 Administrator 视角中,进入 OperatorHub
Installed Operators。 -
选择
knative-eventing
命名空间。 - 点 OpenShift Serverless Operator 的 Provided APIs 列表中的 Knative Eventing 来进入 Knative Eventing 选项卡。
点 knative-eventing,然后进入 knative-eventing 页面中的 YAML 选项卡。
修改
KnativeEventing
CR 中的副本数量:YAML 示例
apiVersion: operator.knative.dev/v1beta1 kind: KnativeEventing metadata: name: knative-eventing namespace: knative-eventing spec: high-availability: replicas: 3
10.2.2. 为 Apache Kafka 为 Knative 代理实现配置高可用性副本
默认情况下,对于 Apache Kafka 组件 kafka-controller
和 kafka-webhook-eventing
的 Knative 代理实现,高可用性 (HA) 默认为每个副本有两个副本。您可以通过修改 KnativeKafka
自定义资源 (CR) 中的 spec.high-availability.replicas
值来更改这些组件的副本数。
先决条件
- 在 OpenShift Container Platform 上具有集群管理员权限,或者对 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 有集群或专用管理员权限。
- 在集群中安装了 OpenShift Serverless Operator 和 Apache Kafka 的 Knative 代理。
流程
-
在 OpenShift Container Platform web 控制台的 Administrator 视角中,进入 OperatorHub
Installed Operators。 -
选择
knative-eventing
命名空间。 - 点 OpenShift Serverless Operator 的 Provided APIs 列表中的 Knative Kafka 进入 Knative Kafka 标签页。
点 knative-kafka,然后进入 knative-kafka 页面中的 YAML 选项卡。
修改
KnativeKafka
CR 中的副本数量:YAML 示例
apiVersion: operator.serverless.openshift.io/v1alpha1 kind: KnativeKafka metadata: name: knative-kafka namespace: knative-eventing spec: high-availability: replicas: 3