Изменение параметров хоста sysctl из привилегированного контейнера - PullRequest
0 голосов
/ 19 октября 2018

мы используем GKE для контейнеров NET Core с ASP.Каждый контейнер ASP использует как минимум один экземпляр inotify (для просмотра шаблонов Razer) и может использовать другой для просмотра файлов конфигурации (если явно не отключен).

Предел Linux по умолчанию для числа экземпляров inotify на хост составляет 128(fs.inotify.max_user_instances=128).Некоторые экземпляры потребляются самими kubernetes (например, демоны fluend).Поэтому, когда большое количество модулей развернуто на одном хосте, на хосте заканчиваются бесплатные экземпляры inotify, и контейнеры зацикливаются в цикле сбоя.

Поскольку мы используем GKE, мы не можем управлять рабочими узлами и напрямую изменять настройки sysctl.

Мои вопросы:

  1. Могу ли я каким-либо образом изменить настройку sysctl для виртуальной машины хоста через привилегированный контейнер?
  2. Есть ли способ настроить планировщик kubernetes, чтобы принять числобесплатные экземпляры inotify (или, по крайней мере, количество развернутых модулей), учитываемые при выборе узла для развертывания новых модулей?

1 Ответ

0 голосов
/ 02 ноября 2018

Как уже отмечалось здесь , «Sysctl без пространства имен называются sysctls уровня узла. Если вам нужно их установить, вы должны вручную настроить их в операционной системе каждого узла или с помощью DaemonSet с привилегированнымиконтейнеры».

Что касается планирования планировщиков, то, по-видимому, у планировщика нет способа учесть inotify или количество модулей при планировании.Планировщик знает только о доступных ресурсах (ЦП и памяти) и спецификациях модуля, таких как модуль или сходство узлов.

Чтобы достичь того типа распространения, который вы ищете, потребуется тщательное планирование и использование как запросов ресурсов, так и соответствия / анти-соответствия.Вы можете просмотреть это .

...