kubernetes-sigs / kubernetes-sigs/node-readiness-controller
static-pod initialization for proper resource accounting
- Dominant language
- Go
- Stars
- 163
- Forks
- 74
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 9
Description
**Static Pod Readiness**
Static pods are managed directly by the Kubelet on a specific node, without the API server's involvement in their creation. To make them visible to the control plane, the Kubelet creates a Mirror Pod for each static pod in the API server. However, if there's a delay before Mirror Pods are created, the scheduler is unaware of the resources (cpu/memory) consumed by these static pods and could potentially over-commit on the node[1].
This race condition could be avoided with NRC to ensure a node only accepts workloads after all static pods are successfully synchronized with the API server.
This doc issue is to demonstrate how a [npd](https://github.com/kubernetes/node-problem-detector) custom-plugin script could be utilized to work with NRC using a 'StaticPodsSynced' node condition.
[1] Ref:
More details here: https://github.com/kubernetes/kubernetes/issues/115325, https://github.com/kubernetes/website/issues/47264 and https://github.com/kubernetes/kubernetes/pull/126870
Contributor guide
Assessment
This issue has not been assessed yet.