Передать Ulimit в Dockerd - PullRequest
       14

Передать Ulimit в Dockerd

0 голосов
/ 04 января 2019

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

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

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

способ 1

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

  1. набор /etc/security/limits.con f с * - nofile 65536
  2. перезагрузка
  3. выполнить ulimit -Hn && ulimit -Sn возврат / возврат 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": { "Нет файла":{ «Имя»: «Нофиль», «Жесткий»: «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 с оснасткой

1 Ответ

0 голосов
/ 15 июля 2019

Немного поздно, но если у кого-то тоже есть эта проблема, вы можете добавить эту строку в /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 есть исправление для этого, возможно, оно скоро будет доступно в релизе.

...