kubelet reserve resources
最近发现在给kubelet reserve资源的时候,它的kubeReserved flag实际没生效,调查之后才发现,在用kubeadm安装的cluster里,kubelet默认被systemd管理,它所创建的cgroup kubelet.service被放在system.slice下,而用户传入的kubeReservedCgroup没有生效。这样的话,就只有systemReserved里设置的资源能生效,而这个资源基本上也只能设置为:
systemReservedCgroup: /system.slice
它下面管理着kubelet, containerd, sshd等资源,所以只要设置得大一些,基本上也能满足需求。
另外,在/kubepods.slice下的memory.max默认也没有生效,即使设置了systemReserve它依然是用了机器的全部内存,想要这个值生效,需要设置
enforceNodeAllocatable:
- pods
- system-reserved
这样,让pods和systemReserve同时生效,那么/kubepods.slice下的max就等于机器总的memory减去systemReserve了。
Comments