• Kubernetes Submit Queue's avatar
    Merge pull request #41149 from sjenning/qos-memory-limits · 9cc54809
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 41919, 41149, 42350, 42351, 42285)
    
    kubelet: enable qos-level memory limits
    
    ```release-note
    Experimental support to reserve a pod's memory request from being utilized by pods in lower QoS tiers.
    ```
    
    Enables the QoS-level memory cgroup limits described in https://github.com/kubernetes/community/pull/314
    
    **Note: QoS level cgroups have to be enabled for any of this to take effect.**
    
    Adds a new `--experimental-qos-reserved` flag that can be used to set the percentage of a resource to be reserved at the QoS level for pod resource requests.
    
    For example, `--experimental-qos-reserved="memory=50%`, means that if a Guaranteed pod sets a memory request of 2Gi, the Burstable and BestEffort QoS memory cgroups will have their `memory.limit_in_bytes` set to `NodeAllocatable - (2Gi*50%)` to reserve 50% of the guaranteed pod's request from being used by the lower QoS tiers.
    
    If a Burstable pod sets a request, its reserve will be deducted from the BestEffort memory limit.
    
    The result is that:
    - Guaranteed limit matches root cgroup at is not set by this code
    - Burstable limit is `NodeAllocatable - Guaranteed reserve`
    - BestEffort limit is `NodeAllocatable - Guaranteed reserve - Burstable reserve`
    
    The only resource currently supported is `memory`; however, the code is generic enough that other resources can be added in the future.
    
    @derekwaynecarr @vishh
    9cc54809
Name
Last commit
Last update
..
clicheck Loading commit data...
cloud-controller-manager Loading commit data...
gendocs Loading commit data...
genkubedocs Loading commit data...
genman Loading commit data...
genslateyaml Loading commit data...
genswaggertypedocs Loading commit data...
genutils Loading commit data...
genyaml Loading commit data...
gke-certificates-controller Loading commit data...
hyperkube Loading commit data...
kube-apiserver Loading commit data...
kube-controller-manager Loading commit data...
kube-discovery Loading commit data...
kube-proxy Loading commit data...
kubeadm Loading commit data...
kubectl Loading commit data...
kubelet Loading commit data...
kubemark Loading commit data...
libs/go2idl Loading commit data...
linkcheck Loading commit data...
mungedocs Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...