Не знаете, как организовать контейнеры docker - PullRequest
0 голосов
/ 31 марта 2020

Я новичок в docker и хочу выполнить sh что-то, но я не уверен, как организовать мои docker контейнеры для этого.

Что я хочу сделать:

У меня есть API, который в простом виде делает расчет из запрошенного файла. Он загружает файл (около 80 МБ) с диска в память, а затем хранит его в памяти в течение 2 часов (кэширование).

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

Возможна ли оркестровка памяти и процессора?

Спасибо,

/ Джереми

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Docker сам по себе не предназначен для оркестровки нескольких контейнеров. Вам нужно использовать некоторую среду оркестровки контейнера. Наиболее популярными являются Kubernetes , Docker Swarm и Apache Mesos . Или, если вы хотите запустить в облаке, то какой-нибудь конкретный поставщик c, например AWS ECS .

Здесь хороший список контейнеров Набор инструментов кластеризации.

В во всех этих средах можно настроить то, что вы описали. Если вы совершенно новичок в topi c, то я рекомендую установить Docker -for-Desktop , который поставляется со встроенным Kubernetes, и поиграть с ним в вашем местном.

0 голосов
/ 07 апреля 2020

Конечно, система управления контейнером - это то, что вы хотите, чтобы иметь возможность эффективно управлять вашими docker контейнерами.

Вы можете найти текущий полный список решений для производственной среды в этой электронной таблице

Инструменты, такие как kubernetes даст Вы получаете ряд преимуществ, например

  • Предоставление и развертывание контейнеров
  • Избыточность и доступность контейнеров
  • Увеличение или удаление контейнеров для равномерного распределения нагрузки приложений по инфраструктуре хоста
  • Распределение ресурсов между контейнерами
  • Балансировка нагрузки при обнаружении службы между контейнерами
  • Мониторинг работоспособности контейнеров и хостов

В Куберне есть Horizontal Pod Autoscaler , что

автоматически масштабирует количество модулей в контроллере репликации, развертывании, наборе реплик или наборе состояний с учетом наблюдаемого использования ЦП (или с поддержкой пользовательских метрик) на некоторых других предоставленных приложением метриках). Обратите внимание, что горизонтальное автоматическое масштабирование стручка не применяется к объектам, которые нельзя масштабировать, например, DaemonSets.

Что касается начала, я бы порекомендовал начать с minikube .

Более продвинутые способы настройки - кластеризация вручную, используя kubeadm , либо посмотрите на облачных провайдеров

Имейте в виду, что у вас не будет возможности изменять на основе облака самолет управления. Больше информации в моем связанном ответе

...