我正在尝试使用Kubernetes创建一堆Pod,服务和部署,但是在运行kubectl describe命令时仍然遇到以下错误。
for "POD" with RunContainerError: "runContainer: API error (500): Cannot start container bbdb58770a848733bf7130b1b230d809fcec3062b2b16748c5e4a8b12cc0533a: [8] System error: too many open files in system\n"
我已经终止了所有Pod,并尝试重新启动计算机,但这不能解决问题。我不是Linux专家,所以我想知道如何找到所有打开的文件并关闭它们?

最佳答案

您可以通过运行以下命令来确认哪个进程正在占用文件描述符:

lsof | awk '{print $2}' | sort | uniq -c | sort -n

这将为您提供打开的FD计数的排序列表以及该过程的pid。然后,您可以查找每个带有w /
ps -p <pid>

如果主要的 pig 是docker / kubernetes,那么我建议遵循caesarxuchao所引用的issue

关于linux - 由于系统中打开的文件过多,导致Kubernetes无法启动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37067434/

10-11 16:30