Вариант использования здесь довольно неустойчивый. Согласно вашему утверждению, ваше приложение является однопоточным, и вы хотите увеличить модуль, как только будет запущен новый запрос, только если предыдущий модуль занят или имеет блокировку, проще говоря, новый модуль должен поставляться с новым
Kubernetes - это оркестратор для контейнеров и развертывание приложения monolithi c на кубернетах не только снижает все огромные возможности кубернетов, но и приносит много накладных расходов при развертывании и развертывании. вопросы автоматизации.
Кроме того, хорошая вещь, когда вы отделяете монолит (= одиночный поток) от (микро) сервис-ориентированной архитектуры, вы можете иметь изолированное событие l oop для каждой службы. Поскольку каждый процесс Node будет работать изолированно внутри контейнера!
Я бы посоветовал вам подумать о архитектурном дизайне приложения, разбить их на многопоточные и затем вернуться к кубернетам.
Однако цитируя то же самое https://www.dataversity.net/use-kubernetes-deploy-monolithic-apps/# A Linux shell - это Linux shell - это Linux shell. Вы можете заставить его работать, и следующее может быть впереди.
Strategi c Решение: Вы можете объявить HPA [Horizontal Pod Autoscaler] для своего развертывания с флагом - max-replicas = xx , то вам нужно написать задание, используя метрики запроса , чтобы всякий раз, когда есть запрос к службе, развертывание должно автоматически масштабироваться и очищаться аналогичным образом. Также вам придется уменьшить масштаб, как только запрос закончится. Вам следует использовать v2beta2 apiVersion HPA, поскольку он позволяет использовать этот тип показателей.
Также я думаю, что вам придется использовать v2beta2 apiVersion HPA потому что вам нужно будет сохранить количество запросов в унарном порядке, чтобы запросы не генерировали 5XX , поскольку служба kubernetes отправляет запрос в тот же под, если такой метри c не установлен.