背景: 某天早上,k8s测试集群有一节点离线,导致只有3个节点的小集群资源不够用,部分pod宕机后无法启动
1. 排查问题,k8s的控制台查看相关节点情况,
#这里提供命令行方式 /usr/local/tmp/kubectl get nodes --kubeconfig=config #查看出现问题的节点: /usr/local/tmp/kubectl describe nodes xxxx --kubeconfig=config
检索是否有相关的提示
如果没有,登陆到离线的节点,查找日志
1. cat /var/log/messages |grep oom 看下是否有oom相关的报错
2. 查看是否有明显的报错,查看k8s核心网络组件容器是否up
** 解决方法**
排查后,发现是 VFS: file-max limit 这个报错,这个报错可以参考
https://stackoverflow.com/questions/4986388/vfs-file-max-limit-1231582-reached
1. 查看本机limit是多少,是否小于报错的阈值 ulimit -a
2. 修改limit限制,ulimit -n xxxx(临时生效,重启失效)
3. 永久生效 vim /etc/sysctl.conf 写入fs.file-max = 6553560(重启后生效)
本文作者为lishengyu,转载请注明。