Kubelet垃圾回收官网地址:https://kubernetes.io/docs/concepts/cluster-administration/kubelet-garbage-collection/
首先我碰到的问题是node节点的proxy组件状态为ImagePullBackOff,What?我镜像哪去了?Proxy组件挂掉之后导致调度到该节点的pod全部都不能用!!!赶紧将镜像load进来先恢复服务,在排查问题…
经过探索得知当硬盘使用达到85%,kubelet就会删除该节点上长时间不用的pod及镜像,kube-proxy是安装集群是就已经安装好的,结果不言而喻,而释放空间的百分比只要到了80%以下,kubelet就会停止驱逐操作…这也是为啥我登录到服务器之后看到的空间还有很多的原因。
我的解决方法是将硬盘使用的阀值调大:
编辑:
vim /etc/systemd/system/kubelet.service.d/10-kubelet.conf
并在ExecStart后添加:--eviction-hard=nodefs.available<5%
最终的解决方法因该是调大硬盘使用的阀值并结合pod优先级及抢占式来解决垃圾回收问题,但是我这里没有测试pod优先级,所以就先说这么多,等测试完成之后在补更。