Разве это не работа балансировщика нагрузки? Чтобы убедиться, что запросы правильно маршрутизируются?
Да, вы правы. Но ...
реплик: 1
Вы используете только одну реплику, поэтому у балансировщика нагрузки нет параметров для маршрутизации на другие экземпляры вашего приложения. Дайте ему несколько экземпляров.
Я пришел к выводу, что если несколько запросов выполняются одновременно, мой модуль аварийно завершает работу из-за OOM
Звучит как ваше приложение имеет очень ограниченные ресурсы.
resources:
limits:
memory: 7000Mi
requests:
memory: 1000Mi
Когда ваше приложение использует более 7000Mi
, оно будет уничтожено OOM (также рассмотрите возможность увеличения значения запроса). Если вашему приложению нужно больше, вы можете выделить ему больше памяти (масштабировать по вертикали) или добавить больше экземпляров (масштабировать по горизонтали).
Horizontal Pod Autoscaler
Обычно все работает нормально, так как запросы выполняется только с перерывами
Рассмотрите возможность использования Горизонтальная автоподстройка стручка , это может увеличить ваше приложение до большего количества случаев, когда у вас больше запросов, и уменьшить при меньшем количестве запросов. Например, это может быть основано на использовании памяти или ЦП.
Использовать очередь
направить следующий запрос после завершения предыдущих?
Если вы хотите именно такое поведение, вам нужно использовать очередь , например, RabbitMQ или Kafka, для обработки ваших запросов по одному.