k8s运行运行pod报错超出文件描述符表限制

1.问题描述

运行pod超过文件描述符表

复制代码
unable to allocate file descriptor table - out of memory/opt/COMMAND.sh: line 9: 

2.查看设备的文件描述符限制

操作前一定要先查询这个值,2097152这个值即为我们可设置的最大值,超过这个值后将无法登录,即使只超过1,并且一定不能设置为unlimited

个人建议先给最大值的一半,如果是不够再适量往上扩(这个值的配置需要尤其慎重,一旦有差错便会无法登录,需要进入救援模式操作)

复制代码
cat /proc/sys/fs/file-nr    #已分配的  分配后释放的  最大的
10816   0       2097152
cat /proc/sys/fs/nr_open
2097152
cat /proc/sys/fs/file-max
2097152

3.编辑/etc/security/limits.conf

添加两行,并重启systemd-logind或者重启服务器

复制代码
root soft nofile 1048576
root hard nofile 1048576


systemctl restart systemd-logind

4.容器运行时是containerd,所以还需要改containerd的启动文件(docker同理)

是k8s集群的遇到这个问题情况下,master和所有node都需要修改containerd/docker的这部分配置

复制代码
vim /etc/systemd/system/containerd.service
#找到以下部分内容,修改值和上面几步的值一致
LimitNPROC=1048576
LimitCORE=1048576
LimitNOFILE=1048576

5.重启containerd,再次运行后已正常

相关推荐
一技安身5 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
代码村新手6 小时前
Linux调试器-gdb的使用
linux
新时代牛马6 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
两点王爷8 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器
xx~t8 小时前
嵌入式——51单片机1
linux·c语言·单片机·嵌入式硬件·51单片机
啦啦啦啦啦zzzz8 小时前
利用RAII机制进行日志的采集
linux·服务器·c++·网络编程·c++20
0+1118 小时前
Linux --线程概念与控制
linux·运维·服务器·jvm
nLif9 小时前
基于GTK的简易MFC对话框兼容层 -- MfcToGTK
linux·c++·mfc·gtk
鹤落晴春9 小时前
【K8s】从 ConfigMap 到 Argo CD:Kubernetes 配置管理链路
运维·云原生·容器·kubernetes
fengyehongWorld9 小时前
Linux 安装frp实现内网穿透
linux·运维·服务器