Настройка лимитов организаций для пользователя

По умолчанию суммарное количество организаций в ролях, назначенных пользователю, не может превышать 50 000 с учетом дубликатов.

При необходимости вы можете увеличить данный лимит. Увеличение лимита включает в себя следующие этапы:

Определение необходимого лимита

Допустимый лимит организаций зависит от значения параметра proxy-body-size в ConfigMap контроллера ingress-nginx. Прежде чем изменять данный параметр, необходимо определить его нужное значение. Для этого:

  1. Создайте пользователя и укажите для него необходимые роли с требуемыми организациями. Если лимит организаций будет превышен, произойдет ошибка сервера.

  2. Если на предыдущем шаге произошла ошибка сервера, не закрывайте окно создания пользователя. Откройте панель инструментов разработчика в браузере.

    Способ открытия панели инструментов разработчика зависит от браузера и ОС. Как правило, открыть панель можно с помощью клавиши F12.
  3. Перейдите на вкладку Network на панели инструментов разработчика.

  4. Попробуйте еще раз создать пользователя, нажав на кнопку Добавить. На вкладке Network инструментов разработчика отобразится соответствующий GraphQL-запрос.

    В столбце Status в строке запроса должен содержаться код ошибки 413, что означает слишком большую полезную нагрузку (Payload) запроса.
  5. Нажмите на GraphQL-запрос, отобразившийся на предыдущем шаге. В правой части панели отобразятся подробные сведения о запросе.

  6. Перейдите на вкладку Payload в подробных сведениях о запросе и скопируйте Payload запроса.

  7. Откройте консоль на панели инструментов разработчика и выполните в ней следующие команды:

    const body = JSON.stringify(<request_payload>);
    const size = new Blob([body]).size;
    size

    Здесь:

    • <request_payload> — полезная нагрузка (Payload) запроса, которая была скопирована на предыдущем шаге.

    В результате выполнения команд в консоль будет выведено количество байтов, необходимых для выполнения GraphQL-запроса.

Увеличение лимита организаций

  1. Подключитесь к терминалу master-узла кластера Kubernetes.

  2. Измените ConfigMap контроллера ingress-nginx с помощью команды:

    kubectl patch configmaps -n ingress-nginx ingress-nginx-controller -p '{"data": {"proxy-body-size": "<proxy_body_size>"}}'

    Здесь:

    • <proxy_body_size> — максимальный допустимый размер тела запроса Nginx. Задается в формате "число и единица измерения информации". По умолчанию установлено значение 20m, соответствующее размеру в 20 МБ.

      Рекомендуемый размер <proxy_body_size> для увеличения допустимых лимитов по организациям можно рассчитать по следующей формуле: 20 МБ (размер по умолчанию) + размер Payload запроса (увеличенный на 10% для запаса).

      Например, если размер Payload запроса, определенный на шаге Определение необходимого лимита, составил 10485760 байт (10 МБ), то рекомендуемый размер <proxy_body_size> составляет 20 МБ + 10 МБ + 10% от 10 МБ = 31 МБ.

      В таком случае вместо <proxy_body_size> в команду выше необходимо передать значение 31m.

  3. Перезапустите все поды, связанные с контроллером ingress-nginx, с помощью команды:

    kubectl rollout restart deployment -n ingress-nginx -l app.kubernetes.io/instance=ingress-nginx
В результате также будет изменен максимальный допустимый размер файлов, загружаемых в систему.

Была ли полезна эта страница?

Обратная связь