EKS의 컨테이너에서 파일 모니터링 수의 상한을 늘립니다.
3214 단어 eksRailskubernetes
어느 날 컨테이너 내에서 rails console 가 일어나지 않게 되었기 때문에 조사했습니다.
$ rails c
FATAL: Listen error: unable to monitor directories for changes.
Visit https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers for info on how to fix this.
htps : // 기주 b. 코 m / 구아 rd / ぃ s 텐 / ぃ き / ん c 르 아 신 g ぇ - 아몬 t-f-생명 fy-t t rs 를 보면
fs.inotify.max_user_watches
의 상한을 바꾸어 주면 문제 없을 것 같습니다.현재 설정을 확인합니다.
$ cat /proc/sys/fs/inotify/max_user_watches
8192
참고 사이트대로 변경할 수 있는지 시험해 봅니다.
$ echo fs.inotify.max_user_watches=524288 | tee -a /etc/sysctl.conf && sysctl -p
fs.inotify.max_user_watches=524288
sysctl: setting key "fs.inotify.max_user_watches": Read-only file system
하하응. 뭐, 어쩐지 알고 있었지만. . .
어떻게 하면 응이나.
이것은 NG
Docker 컨테이너이므로 궁극적으로 Image로 설정하고 싶습니다.
FROM ruby:2.6.2-slim-stretch
...
RUN echo "fs.inotify.max_user_watches=524288" | tee -a /etc/sysctl.conf
...
에서 build 는 통과하지만 실제 값은 변하지 않습니다.
이것은 OK
그들과 함께 고마운 기사를 찾았습니다.
"Docker는 Kernel 공유한다"고 자주 들었지만 그로 인해 무슨 일이 일어나는지 조사해 본 # 기사가 길기 때문에 먼저 결론
특히 커널 매개변수에서 상한값을 공유하는 경우 컨테이너 호스트간에 자원이 서로 충돌합니다.
즉, EC2의 설정을 컨테이너로 인계하고 있는 것은.
EKS의 노드(EC2) 내에서 설정해 봅니다.
$ echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf && sysctl -p
컨테이너 내에서 재확인
$ cat /proc/sys/fs/inotify/max_user_watches
524288
$ rails c
Running via Spring preloader in process 194
Loading staging environment (Rails 5.2.3)
irb(main):001:0>
죄송합니다.
[2019-05-24 추가]
GKE에서도 마찬가지이므로 GCE에서 SSH로 설정을 변경하면 괜찮습니다.
Reference
이 문제에 관하여(EKS의 컨테이너에서 파일 모니터링 수의 상한을 늘립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/enta0701/items/bc9f8f8c780222979784텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)