minikube/k8s/kubectl“无法监视文件 [...]:设备上没有剩余空间”

minikube/k8s/kubectl“无法监视文件 [...]:设备上没有剩余空间”

我对 k8s 和 minikube 还很陌生,需要帮助来理解运行时经常出现但并非普遍存在的错误kubectl logs -f <POD NAME>

我有时会在自己的命名空间中的 pod 上意外地遇到这种情况,例如kube-system在尝试跟踪入口控制器日志时。pod 本身没有明显的错误,命令的输出kubectl logs包含看起来正常的日志行,例如failed to watch file "/var/log/pods/kube-system_nginx-ingress-controller-586cdc477c-95pgh_4b8310a4-5f9b-11e9-9666-0800270e7244/nginx-ingress-controller/1.log": no space left on device$

这个问题的根本原因是什么?我该如何解决?

答案1

听起来好像节点已经用完了 inotify 监视。

您可以使用 sysctl 检查或设置可用监视的数量fs.inotify.max_user_watches您可以使用每个 Kubernetes 上的节点

您可能会发现它被设置为某个低得可笑的数字;默认情况下,它会根据系统的内存量自动调整。

[root@small ~]# sysctl fs.inotify.max_user_watches
fs.inotify.max_user_watches = 8192

[root@large ~]# sysctl fs.inotify.max_user_watches
fs.inotify.max_user_watches = 1048576

无论当前的数量是多少,将其加倍,直到问题不再发生。

(用于minikube ssh访问 Minikube 节点。)

相关内容