跳至内容

配置高可用性组件

主动/被动高可用性 (HA) 是 Kubernetes API 的一项标准功能,有助于确保在发生中断时 API 保持运行。在 HA 部署中,如果活动控制器崩溃或被删除,另一个控制器可以接管处理当前不可用控制器的 API 的任务。

使用领导者选举 HA 模式时,控制器实例在需要之前已在集群中计划并运行。这些控制器实例竞争使用共享资源,称为领导者选举锁。在任何给定时间访问领导者选举锁资源的控制器实例称为领导者。

领导者选举默认情况下对所有 Knative Serving 组件启用。HA 功能默认情况下对所有 Knative Serving 组件禁用,这些组件配置为只有一个副本。

禁用领导者选举

对于利用领导者选举来实现 HA 的组件,可以通过传递以下标志来禁用此功能:--disable-ha。此选项将在 HA 升级到“稳定”状态时消失。

扩展控制平面

除了 activator 组件外,您可以使用类似以下命令来扩展在 knative-serving(或 kourier-system)中运行的任何部署

$ kubectl -n knative-serving scale deployment <deployment-name> --replicas=2
  • --replicas 设置为 2 使能 HA。
  • 如果您有需要更多部署副本的用例,可以使用更高的值。例如,如果您需要至少 3 个 controller 部署,请设置 --replicas=3
  • 设置 --replicas=1 禁用 HA。

注意

如果您缩减了自动扩展器,您可能会在一段时间内(最多为 stable-window 值)观察到某些修订的自动扩展结果不准确。这是因为当 autoscaler pod 终止时,属于该 pod 的修订的所有权将传递给处于待命状态的其他 autoscaler pod。接管这些修订所有权的 autoscaler pod 使用 stable-window 时间来构建这些修订的扩展指标状态。

扩展数据平面

activator 组件的规模由 Kubernetes HPA 组件控制。您可以通过运行以下命令查看当前 HPA 规模限制和当前规模

$ kubectl get hpa activator -n knative-serving

输出类似于以下内容

NAME        REFERENCE              TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
activator   Deployment/activator   2%/100%   5         15        11         346d

默认情况下,minReplicasmaxReplicas 分别设置为 120。如果这些值出于某种原因不可取,那么您可以使用以下命令将这些值更改为 minScale=9maxScale=19

$ kubectl patch hpa activator -n knative-serving -p '{"spec":{"minReplicas":9,"maxReplicas":19}}'

要将激活器规模设置为特定值,只需将 minScalemaxScale 设置为相同的目标值。

建议在生产部署中运行至少 3 个 activator 实例以实现冗余并避免单点故障,以防 Knative 服务需要从 0 扩展。

我们使用分析和 Cookie 来了解网站流量。有关您使用我们网站的信息将与 Google 共享,用于此目的。 了解更多。