VPA: add document behavior for Requests & Limits
This commit is contained in:
		
							parent
							
								
									0a9528b202
								
							
						
					
					
						commit
						11902e8871
					
				|  | @ -13,6 +13,7 @@ | |||
| - [How can I configure VPA to manage only specific resources?](#how-can-i-configure-vpa-to-manage-only-specific-resources) | ||||
| - [How can I have Pods in the kube-system namespace under VPA control in AKS?](#how-can-i-have-pods-in-the-kube-system-namespace-under-vpa-control-in-aks) | ||||
| - [How can I configure VPA when running in EKS with Cilium?](#how-can-i-configure-vpa-when-running-in-eks-with-cilium) | ||||
| - [Why does VPA fail to create a Pod when resource limits are explicitly set to 0?](#why-does-vpa-fail-to-create-a-pod-when-resource-limits-are-explicitly-set-to-0) | ||||
| 
 | ||||
| ### VPA restarts my pods but does not modify CPU or memory settings | ||||
| 
 | ||||
|  | @ -244,3 +245,15 @@ The `--webhook-labels` parameter for the VPA admission-controller can be used to | |||
| When running in EKS with Cilium, the EKS API server cannot route traffic to the overlay network. The VPA admission-controller | ||||
| Pods either need to use host networking or be exposed through a service or ingress. | ||||
| See the [Cilium Helm installation page](https://docs.cilium.io/en/stable/installation/k8s-install-helm/) for more info. | ||||
| 
 | ||||
| ### Why does VPA fail to create a Pod when resource limits are explicitly set to 0? | ||||
| VPA currently handles requests=0 and limits=0 inconsistently with Kubernetes, leading to invalid Pod configurations. Here’s the breakdown: | ||||
| 
 | ||||
| | Scenario                | Kubernetes Behavior                          | VPA Behavior                                  | | ||||
| |-------------------------|----------------------------------------------|----------------------------------------------| | ||||
| | `requests=0`+`limits=0`| Disables resource fields (BestEffort QoS)    | VPA recommends non-zero requests while keeping limits=0, creating invalid configuration (requests>limits) and changing QoS to `Burstable`| | ||||
| | `requests=limits>0`     | Guaranteed QoS                               | Maintains Guaranteed QoS                     | | ||||
| | `requests≠limits`       | Burstable QoS                                | Maintains Burstable QoS                       | | ||||
| 
 | ||||
| VPA avoids modifying QoS classes by design. When a Pod is created with requests=0 and limits=0, Kubernetes treats it as `BestEffort`, but VPA attempts to set non-zero requests (e.g., via recommendations), inadvertently changing the QoS class to `Burstable`. This violates VPA’s principle of preserving QoS. See the [Pod QoS](https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/) for more info. | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue