在工作器节点上获取错误作为"Too many openfiles in the system"



我正在使用kube-aws在AWS上创建kubernetes群集,我拥有Kube-aws版本v0.12.3,我在工作节点上经常出现问题,因为"太多的开放文件在系统中"当我尝试进入工人节点时,节点变得无反应并重新启动。

因此,在节点上运行的豆荚经常在不同的节点上重新安排,并且应用程序持续了一段时间。

我该如何解决此问题。

✗kubectl版本客户端版本:版本。47Z",Goversion:" GO1.10.3",编译器:" GC",Platform:" Darwin/amd64"}服务器版本:version.info {major:" 1",次要:" 11",gitversion:" v1.11.3",gitcommit:" a4529464e4629c21224b3d52 edfe0ea91b072862"03z",goversion:" go1.10.3",编译器:" GC",平台:" Linux/amd64"}

工人节点:节点| k8s- - core@ip-10-0-214-11〜 $ ulimit -a

核心文件大小(块,-c(无限

数据seg大小(kbytes,-d(无限

调度优先级(-e(0

文件大小(块,-f(无限

等待信号(-i(251640

最大锁定内存(kbytes,-l(16384

最大内存尺寸(kbytes,-m(无限

打开文件(-n(1024

管道尺寸(512字节,-p(8

POSIX消息队列(字节,-Q(819200

实时优先级(-r(0

堆栈尺寸(kbytes,-s(8192

CPU时间(秒,-t(无限

最大用户进程(-u(251640

虚拟内存(kbytes,-v(无限

文件锁(-x(无限

,您可以看到最大数量的打开文件设置为很小的值(1024(。也许这是从用于工作节点实例的AWS模板继承的。

您应该增加此值,但这应该清楚地了解应设置的级别:

  • 全球或特定的安全本金;
  • 该限制必须应用于:用户/系统/守护程序帐户或组;
  • 登录服务(SU,SSH,Telnet等(

另外,您应该小心,以免超过内核限制。

对于一个简单的情况,只需在/etc/security/limits.conf文件的末尾添加两个字符串:

mike           soft    nofile          4096
mike           hard    nofile          65536

然后重新启动或重新启动您进行更改的服务。

您可以在互联网中找到进一步的解释;这里有许多可用的之一:安全性和硬化指南

为了在启动过程中将这些设置应用于您的AWS实例,您可能会撰写一个简单的脚本代码:

#!/bin/bash
cd /etc/security
cp limits.conf limits.conf.$(date "+%Y%m%d")
cat <<EndOfMyStrings >> limits.conf
mike           soft    nofile          4096
mike           hard    nofile          65536
EndOfMyStrings

,然后将其添加到启动实例向导的"用户数据"字段中,如下所述:在Linux实例上运行命令

最新更新