配置资源请求和限制¶
您可以为单个 Knative 服务配置资源限制和请求,特别是针对 CPU 和内存。
以下示例展示了如何为服务设置 requests 和 limits 字段
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 资源的请求和限制的更多信息,请参阅 管理容器资源。