Я новичок в kubernetes и пытаюсь развернуть на нем elasticsearch. В настоящее время у меня проблема с количеством файловых дескрипторов, необходимых для elasticsearch и разрешенных докером.
[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
return return 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»: { «nofile»: { «Name»: «nofile», «Hard»: «65536», «Soft»: «65536» } }
to
/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
команде запуска докера. Но я не могу сделать это внутри моей конфигурации kubernetes statefullset.
Итак, вы знаете, как я могу решить эту проблему? Я не сделал что-то не так здесь?
Заранее спасибо за вашу помощь
ps: я на Ubuntu 18.0.1 с докером 18.06.1-ce и microk8s, установленным с помощью оснастки
docker.elastic.co/elasticsearch/elasticsearch-oss:6.5.4
, а также с диаграммой helm от elastic. и официальный. И со всеми у меня такая же беда.... - person David   schedule 04.01.2019