Я новичок в kubernetes, и я пытаюсь развернуть эластичный поиск на нем.
В настоящее время у меня есть проблема с количеством файловых дескрипторов, которые требуются от эластичного поиска и разрешаются докером.
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
Итак, чтобы исправить это, я попробовал 3 разных способа:
способ 1
Из документации докера dockerd должен использовать системное значение в качестве значения по умолчанию.
- набор
/etc/security/limits.con
f с * - nofile 65536
- перезагрузка
- выполнить
ulimit -Hn && ulimit -Sn
возврат / возврат 65536 дважды
- выполнить
docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn'
(должно вернуть 65536 дважды, но нет, вернуть 4096 и 1024)
способ 2
- добавить
--default-ulimit nofile=65536:65536
к /var/snap/microk8s/current/args/dockerd
- перезагрузка
- выполнить
docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn'
(должно вернуть 65536 дважды, но не возвращать 4096 и 1024)
путь 3
добавить
"default-ulimit": {
"Нет файла":{
«Имя»: «Нофиль»,
«Жесткий»: «65536»,
«Мягкий»: «65536»
}
}
до /var/snap/microk8s/354/args/docker-daemon.json
- выполнить
systemctl restart snap.microk8s.daemon-docker.service
- выполнить
journalctl -u snap.microk8s.daemon-docker.service -f
вернет unable to configure the Docker daemon with file /var/snap/microk8s/354/args/docker-daemon.json: the following directives don't match any configuration option: nofile
Единственный способ, который я нашел для установки ulimit, - это передать --ulimit nofile=65536:65536
команде docker run. Но я не могу сделать это в моей конфигурации kubernetes statesfullset.
Так вы знаете, как я могу решить эту проблему?
Я не ошибся здесь?
Заранее спасибо за помощь
ps: я на Ubuntu 18.0.1 с докером 18.06.1-ce и microk8s с оснасткой