×

队列代理是服务中每个应用程序容器的 sidecar 容器。它改进了无服务器工作负载的管理,确保高效的资源利用率。您可以配置队列代理。

为 Knative 服务配置队列代理资源

除了在部署 configmap 中全局配置队列代理资源请求和限制外,您还可以使用针对 CPU、内存和临时存储资源类型的相应注释在服务级别设置它们。

先决条件
  • 必须在您的集群上安装 Red Hat OpenShift Pipelines。

  • 您已安装 OpenShift (oc) CLI。

  • 您已安装 Knative (kn) CLI。

步骤
  • 使用资源请求和限制修改服务的 configmap

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: example-service
      namespace: default
    spec:
      template:
        metadata:
          annotations:
            queue.sidecar.serving.knative.dev/cpu-resource-request: "1"
            queue.sidecar.serving.knative.dev/cpu-resource-limit: "2"
            queue.sidecar.serving.knative.dev/memory-resource-request: "1Gi"
            queue.sidecar.serving.knative.dev/memory-resource-limit: "2Gi"
            queue.sidecar.serving.knative.dev/ephemeral-storage-resource-request: "400Mi"
            queue.sidecar.serving.knative.dev/ephemeral-storage-resource-limit: "450Mi"

    或者,您可以使用特殊的queue.sidecar.serving.knative.dev/resource-percentage 注释,该注释将队列代理资源计算为应用程序容器的百分比。当从应用程序容器需求计算 CPU 和内存资源需求并且它们超出以下边界时,将调整这些值以适应边界。在这种情况下,将对 CPU 和内存资源需求应用以下最小和最大边界

    表 1. 资源需求边界
    资源需求 最小值 最大值

    CPU 请求

    25m

    100m

    CPU 限制

    40m

    500m

    内存请求

    50Mi

    200Mi

    内存限制

    200Mi

    500Mi

    如果同时设置百分比注释和使用相应资源注释的特定资源值,则后者优先。

    queue.sidecar.serving.knative.dev/resource-percentage 注释现已弃用,将在未来版本的 OpenShift Serverless 中删除。