Передайте ulimit в dockerd

Я новичок в кубернетах, и я пытаюсь развернуть на нем эластичный поиск. В настоящее время у меня проблема с количеством файловых дескрипторов, необходимых для elasticsearch и разрешенных докером.

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

Чтобы исправить это, я попробовал 3 разных способа:

способ 1

Из документации докера dockerd должен использовать системное значение в качестве значения по умолчанию.

  1. установить /etc/security/limits.conf с * - nofile 65536
  2. перезагружать
  3. выполнить ulimit -Hn && ulimit -Sn return return 65536 дважды
  4. выполнить docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn' (должен вернуть 65536 дважды, но нет, вернуть 4096 и 1024)

способ 2

  1. добавить --default-ulimit nofile=65536:65536 в /var/snap/microk8s/current/args/dockerd
  2. перезагружать
  3. выполнить docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn' (должен вернуть 65536 дважды, но без возврата 4096 и 1024)

способ 3

  1. добавлять

    "default-ulimit": { "Нет файла":{ "Name": "nofile", «Жесткий»: «65536», «Мягкий»: «65536» } }

    кому: /var/snap/microk8s/354/args/docker-daemon.json

  2. выполнить systemctl restart snap.microk8s.daemon-docker.service
  3. выполнить 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, установленным с помощью оснастки

разве вы не используете изображения ELK? Я думал, у них уже есть правильный ulimit

Mysterion 04.01.2019 12:47

Да, я пробовал с docker.elastic.co/elasticsearch/elasticsearch-oss:6.5.4, а также с рулевой диаграммой от эластичный и официальный. И со всеми ними у меня одни и те же проблемы ....

David 04.01.2019 14:32
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
2
1 700
1

Ответы 1

Немного поздно, но если у кого-то тоже есть эта проблема, вы можете добавить эту строку в /var/snap/microk8s/current/args/containerd-env:

ulimit -n 65536

Затем остановите / запустите microk8s, чтобы включить это исправление. Если вы выполните команду docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn', вы увидите 65536 дважды

Подробнее о выпуске Microk8s на Github # 253. В Microk8s есть исправление для слияния, которое, возможно, скоро будет доступно в выпуске.

Другие вопросы по теме