配置资源请求和限制¶
您可以为各个 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、内存和临时存储资源类型的相应注释在服务级别设置。 上面的示例变为
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 资源的更多信息请求和限制,请参见 管理容器的资源。