kubernetes Pod failed to create fsnotify watcher: too many open files

2024-09-06 18:44

本文主要是介绍kubernetes Pod failed to create fsnotify watcher: too many open files,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

fs.nr_open: 控制单个进程可以打开的文件描述符的最大数量。单个进程的文件描述符限制可以通过 ulimit 命令来设置。

  • /proc/sys/fs/nr_open 是一个系统级别的全局参数,表示系统中单个进程能够打开的文件描述符总数的限制。
  • /proc/sys/fs/file-max 系统级别,当前系统可打开的最大数量
  • /etc/security/limits.conf 用户级别,指定用户可以打开的最大数量

问题描述:

kubernetes 集群使用promtail收集日志,发现一段时间有些机器日志收集不到查看promtail日志出现以下报错:error="filetarget.fsnotify.NewWatcher: too many open files"

 1、单个进程打开文件书过多,修改文件描述符

vim /etc/security/limits.conf
* soft nofile 100001
* hard nofile 100002
root soft nofile 100001
root hard nofile 100002
  • soft nofile 65535
  • hard nofile 65535                这两个值都需要小于/proc/sys/fs/nr_open设置的值

2、操作系统打开文件句柄数过多

整个操作系统可以打开的文件句柄数是有限的,受内核参数“fs.file-max”影响。

可以通过执行“echo 100000000 > /proc/sys/fs/file-max”命令来动态修改该值,也可以通过修改"/etc/sysctl.conf"文件来永久修改该值

3.修改inotify

  • fs.inotify.max_user_instances

含义: 限制单个用户能够创建的 inotify 实例的数量。 默认值: 取决于内核版本,通常是 128。 为什么会影响问题?

如果此值太低,用户将无法创建足够的 inotify 实例来监视文件和目录,可能导致 too many open files错误。通过将其增加到 819200,你提高了系统同时处理的 inotify 实例的数量,从而有助于避免相关的错误。

  • fs.inotify.max_queued_events

含义: 限制 inotify 队列中待处理事件的数量。 默认值: 通常是 16384。 为什么会影响问题:
如果监视的事件发生得太快,队列可能会变满,导致后续事件丢失。通过增加此值,你扩大了系统处理事件的缓冲区,有助于防止队列溢出。

  • fs.inotify.max_user_watches

含义: 限制单个用户能够为其监视的文件和目录设置的监视器(watches)的总数。 默认值: 通常是 8192。 为什么会影响问题:
如果监视的文件或目录数量太多,可能会达到默认的监视器数目上限,导致 too many open files 错误。通过将其增加到52428800,你提高了单个用户可以设置的监视器的数量,从而有助于避免相关的错误。 总体来说,通过调整这些 inotify参数,你扩大了系统处理文件系统事件的容量,从而减少了 too many open files错误的可能性。

需要注意的是,在调整这些参数时,要确保系统资源足够,以及对应的硬件和内核版本支持所需的数值。在生产环境中,调整这些参数之前最好进行适当的测试和评估。

[root@dell730-fm-100-2 ~]# sysctl fs.inotify.max_user_instances
fs.inotify.max_user_instances = 128
[root@dell730-fm-100-2 ~]# sysctl fs.inotify.max_user_instances=1024
fs.inotify.max_user_instances = 524288echo fs.inotify.max_user_instances=81920 >> /etc/sysctl.conf &&  sysctl -p
echo fs.inotify.max_queued_events=1638400 >> /etc/sysctl.conf &&  sysctl -p
echo fs.inotify.max_user_watches=52428800 >> /etc/sysctl.conf &&  sysctl -p

这篇关于kubernetes Pod failed to create fsnotify watcher: too many open files的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142821

相关文章

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

什么是Kubernetes PodSecurityPolicy?

@TOC 💖The Begin💖点点关注,收藏不迷路💖 1、什么是PodSecurityPolicy? PodSecurityPolicy(PSP)是Kubernetes中的一个安全特性,用于在Pod创建前进行安全策略检查,限制Pod的资源使用、运行权限等,提升集群安全性。 2、为什么需要它? 默认情况下,Kubernetes允许用户自由创建Pod,可能带来安全风险。

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

kubernetes集群部署Zabbix监控平台

一、zabbix介绍 1.zabbix简介 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。 2.zabbix特点 (1)安装与配置简单。 (2)可视化web管理界面。 (3)免费开源。 (4)支持中文。 (5)自动发现。 (6)分布式监控。 (7)实时绘图。 3.zabbix的主要功能

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

Open a folder or workspace... (File -> Open Folder)

问题:vscode Open with Live Server 时 显示Open a folder or workspace... (File -> Open Folder)报错 解决:不可以单独打开文件1.html ; 需要在文件夹里打开 像这样

android java.io.IOException: open failed: ENOENT (No such file or directory)-api23+权限受权

问题描述 在安卓上,清单明明已经受权了读写文件权限,但偏偏就是创建不了目录和文件 调用mkdirs()总是返回false. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_E