第 8 章 配置 Knative Serving 自动扩展


重要

您正在查看已不再被支持的 Red Hat OpenShift Serverless 发行版本的文档。目前,OpenShift Container Platform 4.3 及更新的版本支持 Red Hat OpenShift Serverless。

OpenShift Serverless 通过在 OpenShift Container Platform 集群中启用 Knative Serving 自动扩展系统来提供 Pod 自动扩展功能,包括将不活跃 Pod 缩减为零。

要针对 Knative Serving 启用自动扩展,您必须在修订模板中配置并发和扩展范围。

注意

修订模板中设置的任何限值或目标均是针对应用程序的单个实例测得。例如:将 target 注解设置为 50 将对扩展应用程序的自动扩展器进行配置,使每个实例每次将可处理 50 个请求。

8.1. 为 Knative Serving 自动扩展配置并发请求

通过在修订模板中添加 target 注解或 containerConcurrency 字段,可指定应用程序(修订容器)的每个实例应处理的并发请求数。

以下是修订模板中使用的 target 示例:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
  name: myapp
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/target: 50
    spec:
      containers:
      - image: myimage

以下是修订模板中使用的 containerConcurrency 示例:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
  name: myapp
spec:
  template:
    metadata:
      annotations:
    spec:
      containerConcurrency: 100
      containers:
      - image: myimage

targetcontainerConcurrency 添加值将以并发请求的 target 数为目标,但对请求的 containerConcurrency 数施加一个硬性限制。

例如,如果将 target 值设定为 50,将 containerConcurrency 值设定为 100,则目标请求数将为 50,硬性限制数为 100。

如果 containerConcurrency 值小于 target 值,则 target 值将会降级,因为不需要将目标设定为超过实际处理量的请求数。

注意

只有在明确需要限制给定时间到达应用程序的请求数时才应使用 containerConcurrency。只有在应用程序需要强制限制并发时才建议使用 containerConcurrency

8.1.1. 使用目标注解配置并发请求

并发请求数的默认目标值为 100,但您可通过在修订模板中添加或修改 autoscaling.knative.dev/target 注解值来覆盖该值。

下面是如何在修订模板中使用该注解将目标设置为 50 的示例。

autoscaling.knative.dev/target: 50

8.1.2. 使用 containerConcurrency 字段配置并发请求

containerConcurrency 字段可对处理的并发请求数设置硬性限制。

containerConcurrency: 0 | 1 | 2-N
0
并发请求数不限。
1
保证修订容器的给定实例一次只处理一个请求。
2 或以上
将并发请求数限制为该值。
注意

如果无 target 注解,则自动扩展会被配置为 target 值与 containerConcurrency 值相等。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.