web-dev-qa-db-fra.com

minikube / k8s / kubectl "n'a pas pu regarder le fichier [...]: il ne reste plus d'espace sur l'appareil"

Je suis relativement nouveau sur k8s et minikube, et je pourrais utiliser l'aide pour comprendre l'erreur fréquente mais non omniprésente que j'obtiens lors de l'exécution de kubectl logs -f <POD NAME>

Je l'obtiens, parfois et de manière imprévisible, sur des pods dans mon propre espace de noms et dans kube-system, Par exemple lorsque vous essayez de réduire les journaux du contrôleur d'entrée. Il n'y a aucune erreur apparente dans les pods eux-mêmes, et la sortie de la commande kubectl logs Contient des lignes de journal d'apparence normale jusqu'à, par exemple 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$

Quelle est la source ultime de cela et comment puis-je le résoudre?

7
Ben

On dirait que le nœud n'a plus de montres inotify.

Vous pouvez vérifier ou définir le nombre de montres disponibles à l'aide de sysctl fs.inotify.max_user_watches sur chaque Kubernetes nœud .

Vous constaterez probablement qu'il a été réglé sur un nombre ridiculement bas; par défaut, il est réglé automatiquement en fonction de la quantité de mémoire du système.

[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

Quel que soit le montant actuellement, doublez-le jusqu'à ce que le problème cesse de se produire.

(Utilisation minikube ssh pour accéder à un nœud Minikube.)

7
Michael Hampton