• 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
..
boilerplate Loading commit data...
cmd/teststale Loading commit data...
e2e-internal Loading commit data...
gen-swagger-doc Loading commit data...
jenkins Loading commit data...
lib Loading commit data...
make-rules Loading commit data...
testdata Loading commit data...
verify-flags Loading commit data...
.linted_packages Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...
autogenerated_placeholder.txt Loading commit data...
benchmark-go.sh Loading commit data...
benchmark-integration.sh Loading commit data...
build-cross.sh Loading commit data...
build-go.sh Loading commit data...
build-ui.sh Loading commit data...
cherry_pick_pull.sh Loading commit data...
dev-build-and-push.sh Loading commit data...
dev-build-and-up.sh Loading commit data...
dev-push-hyperkube.sh Loading commit data...
e2e-node-test.sh Loading commit data...
e2e.go Loading commit data...
e2e_test.go Loading commit data...
federated-ginkgo-e2e.sh Loading commit data...
generate-bindata.sh Loading commit data...
generate-docs.sh Loading commit data...
get-build.sh Loading commit data...
ginkgo-e2e.sh Loading commit data...
godep-restore.sh Loading commit data...
godep-save.sh Loading commit data...
grab-profiles.sh Loading commit data...
install-etcd.sh Loading commit data...
list-feature-tests.sh Loading commit data...
local-up-cluster.sh Loading commit data...
lookup_pull.py Loading commit data...
print-workspace-status.sh Loading commit data...
run-in-gopath.sh Loading commit data...
test-cmd.sh Loading commit data...
test-go.sh Loading commit data...
test-integration.sh Loading commit data...
test-update-storage-objects.sh Loading commit data...
update-all-staging.sh Loading commit data...
update-all.sh Loading commit data...
update-api-reference-docs.sh Loading commit data...
update-bazel.sh Loading commit data...
update-codecgen.sh Loading commit data...
update-codegen.sh Loading commit data...
update-federation-api-reference-docs.sh Loading commit data...
update-federation-generated-swagger-docs.sh Loading commit data...
update-federation-openapi-spec.sh Loading commit data...
update-federation-swagger-spec.sh Loading commit data...
update-generated-docs.sh Loading commit data...
update-generated-protobuf-dockerized.sh Loading commit data...
update-generated-protobuf.sh Loading commit data...
update-generated-runtime-dockerized.sh Loading commit data...
update-generated-runtime.sh Loading commit data...
update-generated-swagger-docs.sh Loading commit data...
update-godep-licenses.sh Loading commit data...
update-gofmt.sh Loading commit data...
update-openapi-spec.sh Loading commit data...
update-staging-client-go.sh Loading commit data...
update-staging-godeps.sh Loading commit data...
update-swagger-spec.sh Loading commit data...
update-translations.sh Loading commit data...
update_owners.py Loading commit data...
verify-all.sh Loading commit data...
verify-api-groups.sh Loading commit data...
verify-api-reference-docs.sh Loading commit data...
verify-bazel.sh Loading commit data...
verify-boilerplate.sh Loading commit data...
verify-cli-conventions.sh Loading commit data...
verify-codecgen.sh Loading commit data...
verify-codegen.sh Loading commit data...
verify-description.sh Loading commit data...
verify-federation-openapi-spec.sh Loading commit data...
verify-flags-underscore.py Loading commit data...
verify-generated-docs.sh Loading commit data...
verify-generated-protobuf.sh Loading commit data...
verify-generated-runtime.sh Loading commit data...
verify-generated-swagger-docs.sh Loading commit data...
verify-godep-licenses.sh Loading commit data...
verify-godeps.sh Loading commit data...
verify-gofmt.sh Loading commit data...
verify-golint.sh Loading commit data...
verify-govet.sh Loading commit data...
verify-import-boss.sh Loading commit data...
verify-linkcheck.sh Loading commit data...
verify-openapi-spec.sh Loading commit data...
verify-pkg-names.sh Loading commit data...
verify-readonly-packages.sh Loading commit data...
verify-staging-client-go.sh Loading commit data...
verify-staging-godeps.sh Loading commit data...
verify-staging-imports.sh Loading commit data...
verify-swagger-spec.sh Loading commit data...
verify-symbols.sh Loading commit data...
verify-test-images.sh Loading commit data...
verify-test-owners.sh Loading commit data...