cpu_manage_state:
问题:在k8s部署的机器上,当机器扩容后,kubelet不可用
解决方案:删掉/opt/varlib/kubelet目录下cpu_manager_state文件 然后monit restart kubelet(或者systemctl restart kubelet) 就可以了
cd /var/lib/kubelet/
cat cpu_manager_state
rm -rf cpu_manager_state
systemctl restart kubelet
systemctl status kubelet
cpu_manager_state文件如下:

Kubernetes 从1.8开始提供了CPU Manager特性来支持cpuset的能力,CPU Manager支持两种Policy,分别为none和static:
-
none: 为cpu manager的默认值,相当于没有启用cpuset的能力。
-
static: 设置
--cpu-manager-policy=static来启用,kubelet将在Container启动前分配绑定的cpu set,分配时还会考虑cpu topology来提升cpu affinity。
CPU管理器在运行时不支持CPU的离线和上线。此外,如果节点上的一组在线CPU发生变化,则必须清空该节点,并通过删除kubelet根目录中的状态文件cpu_manager_state手动重置CPU管理器。
当Kubernetes集群扩容后,kubelet可能因CPUManager状态文件问题变得不可用。解决办法是删除/opt/varlib/kubelet/cpu_manager_state文件并重启kubelet服务。CPUManager从1.8版开始提供,支持none和static策略,用于管理CPU分配。static策略在容器启动前分配绑定的CPU以提升性能。若节点CPU在线/离线变化,需手动清理并重置CPUManager状态。
1477

被折叠的 条评论
为什么被折叠?



