linux - 由于系统中打开的文件太多,Kubernetes 无法启动

标签 linux docker containers kubernetes devops

我正在尝试使用 Kubernetes 创建一堆 pod、服务和部署,但在运行 kubectl describe 命令时不断出现以下错误。

对于带有 RunContainerError 的“POD”:“runContainer:API 错误 (500):无法启动容器 bbdb58770a848733bf7130b1b230d809fcec3062b2b16748c5e4a8b12cc0533a:[8] 系统错误:系统中打开的文件太多\n”

我已经终止了所有 pod 并尝试重新启动机器,但这并没有解决问题。我不是 Linux 专家,所以我只是想知道如何找到所有打开的文件并关闭它们?

最佳答案

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

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

这将为您提供一个已排序的打开 FD 计数列表以及进程的 pid。然后你可以查找每个进程 w/

ps -p <pid>

如果主要工作是 docker/kubernetes,那么我建议继续关注 issue caesarxuchao 引用。

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

相关文章:

c++ - 使 std::set 在比较元素时使用转换运算符

linux - 在 linux 中使用 grep 将 xml 文件中包含的所有 url 传输到单独的文件

javascript - ExtJS hbox可拖动垂直线

linux - 如何使用 "awk"执行具有相同尾部的多个文件并导出到一些具有新尾部的新文件?

mysql - 如何为在 docker 容器上运行的 MySQL 设置对本地文件系统上的文件的访问

docker - Elasticsearch 6 + Kibana + Docker撰写错误

docker - 如果端口在 Dockerfile 中公开,是否可以通过 Docker Compose 取消公开端口?

docker-jenkins 容器无法访问互联网

android - 运行 Linux 的 Chromebook 会处理 android studio 吗?

linux - 如何使用 bash 锁定文件