Fixing a kubelet memory leak in Kubernetes 1.36 (heyoncall.com)

29 points by compumike 16 hours ago

6 comments:

by __turbobrew__ a few seconds ago

A good reason to health check the kubelet process and restart it when the checks fail.

by compumike 16 hours ago

Author here! If you're running a Kubernetes cluster, I recommend you check `kubectl version` and see if you're running "Server Version: v1.36.[0,1,2]". If so, you may want to use the one-liner at the end of the article to check your "process_resident_memory_bytes" on each node, and consider restarting kubelet as a temporary workaround to tame the memory leak until v1.36.3 is released.

by rirze an hour ago

Very cool. It's often daunting to contribute to such a well-established and recognizable project, but this is exactly how it should work.

by CamouflagedKiwi 39 minutes ago

Nice find.

Can't help but feel this is one of the subtle traps hidden beneath the advice that contexts aren't supposed to be stored. I know it's not always that easy, of course.

by compumike 10 minutes ago

Thanks. I know there's a `go vet` tool that's run as part of Kubernetes CI, and one of its checks is:

  lostcancel: check cancel func returned by context.WithCancel is called
I'm not 100% sure why `go vet` didn't catch this issue, but storing the context in the struct is probably part of the reason.
by fsuts 16 minutes ago

Not all heroes wear capes! Well done

Data from: Hacker News, provided by Hacker News (unofficial) API