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,再次运行后已正常

相关推荐
大哥您好3 小时前
QEMU 11.1.2 多架构编译指南(x86_64 / aarch64 / riscv64)
linux·服务器
道满科技4 小时前
Function Calling 参数总出错?只修参数就行
linux·windows·python
Android系统攻城狮4 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_prepare_read调用流程与实战(七十四)
linux·运维·服务器·gstreamer音视频·音视频进阶
我科绝伦(Huanhuan Zhou)5 小时前
Linux 通用压力测试脚本合集:磁盘 + 网络
linux·网络·压力测试
无人生还别怕6 小时前
如何安装任意版本docker
运维·docker·容器
Soneswy7 小时前
Linux系统篇--重定向与文件操作命令
linux
有毒的教程7 小时前
Linux底层存储路由配
linux·运维·网络
程序员老赵7 小时前
Docker 部署 Redmine:轻松搭建私有化项目管理平台
docker·容器·开源
Linux系统运维工程师_郭主任8 小时前
运维人还在被拒offer?现在能考的,只有 RHCE 10.0。
linux
自养Agent8 小时前
MCP Server Boundary Audit Report
linux·服务器·人工智能·windows·大模型·llm