Kubernetes
minikube/k8s/kubectl“觀看文件失敗………: 設備上沒有剩餘空間”
我對 k8s 和 minikube 還很陌生,可以幫助理解我在執行時遇到的常見但不普遍的錯誤
kubectl logs -f <POD NAME>
kube-system
我有時會在我自己的命名空間中的 pod 上以及在嘗試跟踪入口控制器日誌時遇到這種情況,而且出乎意料。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$
這個的最終來源是什麼,我該如何解決?
聽起來該節點已用完 inotify 手錶。
fs.inotify.max_user_watches
您可以使用每個 Kubernetes節點上的 sysctl 檢查或設置可用手錶的數量。您可能會發現它已被設置為某個低得離譜的數字;預設情況下,它會根據系統的記憶體量自動調整。
[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 節點。)