Проект Kubernetes, или K8S, стартовал в Google в 2014 году, первая версия была представлена — в июлеn2015-го.В основе K8S лежит суперсекретный проект Гугла Borg — фактически основа основ управления кластерами в этой корпорации, проект, наработками которого до этого гигант не особо хотел делиться. Многие из разработчиков Borg перешли в Kubernetes, а вместе с ними туда перекочевали все идеи и решения проблем — перенос контейнеров без потерь данных, балансировка нагрузки, обнаружение сервисов.nПараллельно с Kubernetes несколько компаний предложило свои решения, которые внешне похожи, но существенно различаются по реализации. Это Docker Swarm от разработчиков Docker, Nomad, Mesos/Marathon и Fleet.nDocker Swarm позволяет очень просто объединить Docker-хосты в один виртуальный хост, который внешне выглядит как обычный. Очень прост в развертывании, фактически нужно запустить еще один контейнер и присоединить к остальным. Для управления используется REST API интерфейс, совместимый с Docker API. В итоге абсолютно все инструменты, совместимые с API Docker, — Dokku, Compose, DockerUI и многие другие — могут работать с кластером Docker Swarm, как с обычным хостом. Это огромный плюс Docker Swarm, но, если API не поддерживает какую-то возможность, простого решения проблемы не будет.nnРазработкой Nomad занимается HashiCorp — компания, специализирующаяся на инструментах управления кластерами, виртуальными машинами и облачными сервисами. В итоге получился универсальный многофункциональный инструмент, который может быть использован для более широкого круга задач. Он сочетает в себе легкий менеджер ресурсов и сложный планировщик, определяющий, на каком узле развернуть указанные ресурсы. Архитектурно проще Kubernetes, его легко разворачивать и настраивать. Поддерживает несколько ЦОД и multi-region конфигурации. Тестировался на кластерах до 5000 узлов, хотя вполне способен работать на гораздо более крупных кластерах. Серверная и клиентская часть реализованы в одном бинарнике, для координации или хранения не требуется других внешних служб. Может использоваться Consul для обнаружения сервисов и Vault для организации единого доступа.nВсе разработки HashiCorp.nMarathon представляет собой надстройку над менеджером кластера Apache Mesos, расширяя его возможности управлять контейнерами в нескольких ЦОД. Изначально разработан и применяется в Twitter. Использует другие решения Apache Software Foundation для организации, обнаружения приложений, планирования и прочего — ZooKeeper, Chronos, Kafka, Hadoop и другие. Поддерживается формат контейнера Docker и свой Mesos, но в принципе можно просто добавить другую технологию. Самостоятельная установка не самое простое дело, поэтому удобный способ развертывания — Mesosphere Enterprise DC/OS (CentOS + репозиторий). Кстати, уже есть наработки по интеграции API планировщика Kubernetes с Mesos — Kubernetes-Mesos (md).nFleet — распределенная система инициализации на основе Systemd и etcd, которые разработчики представляют как Systemd уровня кластера. Нет некоторых важных функций — балансировки нагрузки, интеграции DNS, ACL и других. Их реализация пока под вопросом.n
Нужен администратор контейнеров Docker? Обращайтесь [email protected]