error: /proc must be mounted

问题描述

 登录容器,执行ps命令查看进程时,报错/proc挂载问题,如下图,按照图上所说在/etc/fstab 下添加,还是报错

 

思路

 可能是lxcfs挂了或者hang住了,具体要登录k8s节点实例查看

 

解决方案

 1、查看lxcfs状态

systemctl status lxcfs.service

 

 2、先重启lxcfs,如果lxcfs 重启起不了的,可以ps -eLf | grep lxcfs查看一下lxcfs的进程,如果父进程是1的话说明卡在进程回收了,kill掉进程号然后重启一下lxcfs就可以了

systemctl restart lxcfs.service

 

 3、问题分析

  1)查看线程数,可能是线程数太高导致宿主机负载太高,lxc hang住(一般是java程序)

cd /sys/fs/cgroup/pids/kubepods && find -name pids.current |grep pod |xargs -I file sh -c 'echo -e file" \c" && cat file'|awk '$2 > 10000'

  2)查看io,可能是磁盘问题导致,(如下,磁盘io小但是使用率很高)这个需要修复磁盘了,重启不了进程

iostat -dmx 1 sdb

 

   3)还有一种情况是,容器表现为/proc问题,可是查看lxcfs状态是running,这时可以查看下waiting状态,若出现一直有非0的,可以重启lxcfs试试(线上环境慎用)

cat /sys/fs/fuse/connections/*/waiting

 

 

补充

top,df报错,/proc挂载出问题:

top: failed /proc/stat open: Transport endpoint is not connected

 

原因:容器线程数打满,宿主机lxcfs进程hang住

 

解决方法:宿主机重启lxcfs进程

systemctl restart lxcfs.service

 

posted @ 2021-08-17 19:21  心恩惠动  阅读(1078)  评论(0编辑  收藏  举报