Chapter 15. Configuring Queue Proxy resources
Chapter 15. Configuring Queue Proxy resources The Queue Proxy is a sidecar container to each application container within a service. It improves managing Serverless workloads, ensuring efficient resource usage. You can configure the Queue Proxy. 15.1. Configuring Queue Proxy Resources for a Knative Service Apart from configuring the Queue Proxy resource requests and limits globally in the deployment configmap, you can set them at the service level using the corresponding annotations targeting CPU, memory, and ephemeral storage resource types. Prerequisites Red Hat OpenShift Pipelines must be installed on your cluster. You have installed the OpenShift ( oc ) CLI. You have installed the Knative ( kn ) CLI. Procedure Modify the configmap of your service with resource requests and limits: 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" Alternatively, you can use the special queue.sidecar.serving.knative.dev/resource-percentage annotation, which calculates the Queue Proxy resources as a percentage of the application container. When CPU and memory resource requirements are calculated from the application container requirements and they are outside the boundaries below, the values are adjusted to fit within the boundaries. In this case, the following minimum and maximum boundaries are applied to the CPU and memory resource requirements: Table 15.1. Resource requirements boundaries Resource requirements Min Max CPU request 25m 100m CPU limit 40m 500m Memory request 50Mi 200Mi Memory limit 200Mi 500Mi Note If you simultaneously set a percentage annotation and a specific resource value using the corresponding resource annotation, then the latter takes precedence. Warning The queue.sidecar.serving.knative.dev/resource-percentage annotation is now deprecated and will be removed in a future version of OpenShift Serverless.
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"