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

相关推荐
AI+程序员在路上6 分钟前
Ubuntu 20虚拟机中实现与Windows主机的剪贴板共享
linux·ubuntu
kevin小新6 分钟前
虚拟机 Ubuntu22 系统中安装 VMwareTools 以及相关工具
linux
绍磊leo6 分钟前
ubuntu22.04无法同时有线+无线联网问题解决
linux·网络
网硕互联的小客服9 分钟前
服务器的IO性能怎么看?
linux·运维·服务器·安全
赴前尘14 分钟前
docker 配置ipv6地址
java·docker·容器
生产队队长14 分钟前
Database:Linux环境中的Oracle修改密码
linux·数据库·oracle
CheungChunChiu15 分钟前
Linux 下 Realtek WiFi/BT 二合一模组详解
linux·ubuntu
菜萝卜子16 分钟前
k8s 启动 postgresql 数据库
数据库·postgresql·kubernetes
k8s-open17 分钟前
解决“Argument list too long”错误:curl参数过长的优雅处理方案
linux·前端·chrome·ssh
攒钱植发18 分钟前
嵌入式Linux——开发踩坑记:从 WebSocket 死锁到 PortAudio 音频丢包的硬核调试
linux·websocket·音视频