Контейнерный хостинг: опыт разработки и сравнение технологий

Статья описывает опыт создания контейнерного хостинга на базе Docker, начиная с планов на Kubernetes, но в итоге остановясь на Docker и Docker Compose. Причиной тому послужило отсутствие опыта работы с Kubernetes и недостаток ресурсов для его полноценного развертывания и тестирования.
Контейнерный хостинг: опыт разработки и сравнение технологий
Изображение носит иллюстративный характер

В процессе разработки возник ряд проблем, касающихся масштабирования: ограничения Docker по выделению IP-адресов для сетей, длительное время перезапуска большого количества контейнеров, трудности со сбором статистики и необходимость тонкой настройки операционной системы под высокие нагрузки. Docker Swarm не показал себя как решение этих проблем, что стало аргументом в пользу Kubernetes, который решает ряд из них.

Автор статьи смог обойти проблемы путем собственной разработки: использование явного указания подсети при создании Docker сетей; отказ от автоматического перезапуска контейнеров в пользу программного мониторинга и перезапуска упавших контейнеров; разработка собственного алгоритма сбора статистики; и самостоятельная настройка параметров операционной системы.

В заключение, автор признает преимущества Kubernetes в решении проблем масштабирования, но подчеркивает важность выбора инструмента, исходя из конкретных потребностей. В текущем проекте Docker Swarm оказался более подходящим из-за простоты перехода с Docker Compose. Комментарии к статье указывают на необходимость учета нормативных и юридических аспектов, связанных с предоставлением хостинга.


Новое на сайте