Ситуация: много тяжелых докеров, которые периодически попадают, а затем остаются неиспользованными в течение более длительного периода.
Желание: запускать контейнеры по требованию (например, systemd запускает вещи через активацию сокета) и останавливать их после холостого хода в течение заданного периода времени. Отсутствие видимого времени простоя для конечного пользователя.
Опции:
- В Kubernetes есть контроллеры ресурсов, которые могут масштабировать реплики. Я полагаю, что можно было бы сохранить количество реплик на 0 и при необходимости установить его на 1, но как это можно достичь? Руководство пользователя говорит, что есть что-то, называемое агентом автоматического масштабирования, но я не вижу никакой дополнительной информации об этом. Есть ли подключаемый программируемый агент, который можно использовать для отслеживания запросов и масштабирования на основе пользовательской логики?
- Я не вижу никакого решения в Docker Swarm, поправьте меня, если я ошибаюсь.
- Используйте собственный HTTP-сервер, написанный на выбранном языке, который будет иметь доступ к демону докеров. Перед отправкой в правильное место он будет проверять наличие контейнера и обеспечить его работу. Недостаток - не общее решение, не должно быть контейнером или иметь доступ к демону.
- Используйте systemd, как описано здесь. Такие же недостатки, как и выше, то есть не общие, и один должен сам решать сетевые задачи (например, найти IP-адрес созданного контейнера и загрузить его в конфигурацию сервера/прокси).
Любые идеи оценили!