pod exec失败问题

pod exec 报错

# kubectl exec -it xxx-pod -n ns bash
bash:fork:Resource temporarily unavailable

排查

网上查了下出现以上错误可能是发生了这两种情况:
1.打开进程数的限制。
2.打开文件数的限制。

# 查看系统ulimit
# ulimit -a 
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256205
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1000000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 256205
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


# 统计当前线程数
pstree -p  | wc -l

但是k8s宿主机的宿主机的limits都已经调大过了,并且线程数也没有超过宿主机的limits,网上继续查找。。

# 打印出pod的uid
kubectl get pods -n xxxx -o custom-columns=NodeName:.spec.nodeName,PodName:.metadata.name,PodUID:.metadata.uid 

# 过滤pod uid
cd /sys/fs/cgroup/pids/kubepods/
ls besteffort | grep c55151da
ls besteffort/ | grep c55151da
podc55151da-1708-4c96-b0a2-0469269e43f4

cat besteffort/podc55151da-1708-4c96-b0a2-0469269e43f4/pids.current 
10000
cat besteffort/podc55151da-1708-4c96-b0a2-0469269e43f4/pids.max 
10000


容器的线程数都已经达到1w,而弹性云默认限制容器的线程数上限就是1w,设定该上限的原因,也是为了避免单容器线程泄漏而耗尽宿主机的线程资源。

问题的原因已定位,找研发继续排查线程增多的问题。。

https://plpan.github.io/docker-exec-%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5%E4%B9%8B%E6%97%85/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清枫cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值