15.2. Knative 部署的高可用性


默认情况下,Knative Serving activator, autoscaler,autoscaler -hpa,controller,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。

流程

  1. 在 OpenShift Container Platform web 控制台的 Administrator 视角中,进入 OperatorHub Installed Operators
  2. 选择 knative-serving 命名空间。
  3. 点 OpenShift Serverless Operator 的 Provided APIs 列表中的 Knative Serving 来进入 Knative Serving 选项卡。
  4. knative-serving,然后使用 knative-serving 页面中的 YAML 选项卡。

    Knative Serving YAML
  5. 修改 KnativeServing CR 中的副本数量:

    YAML 示例

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      high-availability:
        replicas: 3

  6. 您还可以指定特定工作负载的副本数量。

    注意

    特定于工作负载的配置会覆盖 Knative Serving 的全局设置。

    YAML 示例

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      high-availability:
        replicas: 3
      workloads:
      - name: webhook
        replicas: 4

  7. 验证是否遵循高可用性限制:

    示例命令

    $ 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

15.2.2. 覆盖中断预算

Pod Disruption Budget (PDB)是 Kubernetes API 的一个标准功能,有助于限制因维护原因需要重新调度 pod 时对应用程序的中断。

流程

  • 通过修改 KnativeServing 自定义资源(CR)中的 minAvailable 配置值来覆盖特定资源的默认 PDB。

PDB 示例,minAvailable 设置为 70%

apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
 name: knative-serving
 namespace: knative-serving
spec:
 podDisruptionBudgets:
 - name: activator-pdb
   minAvailable: 70%

注意

例如,如果您通过将 high-availability.replicas 值更改为 1,请确保也将对应的 PDB minAvailable 值更新为 0。否则,pod 中断预算会阻止自动集群或 Operator 更新。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.