-
Task
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
False
-
None
-
False
-
-
For Go 1.18, the Go runtime made some changes in the way the garbage collector computes its target heap size. Depending on the workload, the effect (if noticeable) can be an increase or decrease in the observed memory footprint of a process.
We added a temporary unsupportedConfigOverride called "garbageCollectionTargetPercentage" in 4.11 as a mitigation for cases where a significant change to the memory footprint of kube-apiserver occurs after an upgrade to 4.11. The effect is that it allows tuning GOGC (https://pkg.go.dev/runtime#hdr-Environment_Variables) for the kube-apiserver process. There's no supported way to configure this, and configuring it blocks cluster upgrades.
No related issues have since come to the attention of the API team that might have required this as part of a remediation process. For future versions that have no direct upgrade path from 4.10 or lower, it should be removed.