Pod和容器的资源管理描述了如何在 Kubernetes 中为“常规”Pod 设置资源请求和限制。是否有支持/推荐的方法来为 kube-apiserver 等控制平面组件设置这些限制?
我考虑的事情:
- 修改静态清单,例如在
/etc/kubernetes/manifests/kube-apiserver.yaml
. 这可以工作,但它将kubeadm
在下次升级期间被覆盖。 - 设置
kube-reserved
或system-reserved
标志。然而,这也可以再次起作用 - 它们仅在一个 ConfigMap 中定义(例如),并且在节点升级期间kubelet-config-1.21
将被覆盖。kubeadm
相同的限制将适用于控制平面节点和工作节点,我不希望这样。
我可以用 ansible 之类的东西来克服这个问题,但是 ansible 将与 kubeadm 一起“解决”,我想避免这种情况。
我想解决什么问题?
我有一个小型的 homelab kubernetes 安装。我希望允许在控制平面节点上运行常规 pod,但我希望能够为控制平面组件保留一些资源(主要是内存)。即,我希望能够设置requests
kube-apiserver 之类的东西,以便调度程序知道不要将任何其他 pod(它们也将有适当requests
的 )放在它的位置。