跳到内容

配置资源请求和限制

您可以为单个 Knative 服务配置资源限制和请求,特别是针对 CPU 和内存。

以下示例展示了如何为服务设置 requestslimits 字段

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: example-service
  namespace: default
spec:
  template:
    spec:
      containers:
        - image: docker.io/user/example-app
          resources:
            requests:
              cpu: 100m
              memory: 640M
            limits:
              cpu: 1

配置队列代理资源

为了设置队列代理资源的请求和限制,您可以在 部署配置映射 中全局设置它们,或者使用针对 cpu、memory 和 ephemeral-storage 资源类型的相应注解在服务级别设置它们。上述示例变为

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"
    spec:
...

或者,您可以使用一个特殊的注解 queue.sidecar.serving.knative.dev/resource-percentage,它将队列代理资源计算为应用程序容器的百分比。在这种情况下,cpu 和内存资源要求会受到最小和最大边界的限制

资源要求 最小值 最大值
CPU 请求 25m 100m
CPU 限制 40m 500m
内存请求 50Mi 200Mi
内存限制 200Mi 500Mi

注意

如果用户同时设置了百分比注解和通过相应资源注解设置的特定资源值,则后者优先。

警告

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

额外资源

  • 有关 Kubernetes 资源的请求和限制的更多信息,请参阅 管理容器资源

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。