第 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
为 target
和 containerConcurrency
添加值将以并发请求的 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
值相等。