Мы хотим создать небольшой кластер, в котором сначала будут храниться базы данных и сервисы тестирования. Первоначально кластер будет запущен на 8 выделенных серверах (HP G3 / G5). 6 серверов находятся в одной стойке, и два из них находятся в отдельных местах. Вне этого кластера у нас есть 2-4 мощных сервера, которые в большинстве случаев не используют все свои ресурсы. Это заставило меня подумать, что их можно добавить в кластер и выполнять операции кластера, когда они не используют 100% своих ресурсов. Еще одна функция, которую я хочу, чтобы кластер имел, - запускать контейнеры докеров в качестве служб кластера и, конечно же, кластер с высокой доступностью и балансировкой нагрузки. Я много искал по этой теме, но не нашел хорошего ответа.
Самый надежный вариант - установить Ubuntu 14.04 и Apache Mesos и добавить невыделенные серверы в качестве подчиненных в кластере после того, как Mesos реализовал динамические атрибуты ведомого устройства
Вы пробовали смотреть зоны доступности? Может, это могло бы тебе помочь. Что касается контейнеров, HA и LoadBalancing, не могли бы вы объяснить, что вам нужно? Mesos изначально является избыточным, поскольку он заботится о работоспособности и статусе задач, поэтому вам действительно не нужна высокая доступность, как вы могли видеть на платформах виртуализации. Балансировка нагрузки также на самом деле не реализована, поскольку вы думаете использовать ее в обычной инфраструктуре, поскольку кластер mesos будет автоматически планировать ваши задачи в зависимости от предложений и требований, которые он отправляет / получает, планировщик будет смотреть на глобальные доступные ресурсы и делать предложения для вашей задачи. динамически.
На самом деле, в мезо вы скорее думаете об избыточности и балансировке нагрузки в дизайне своего приложения, чем в своей инфраструктуре (даже если вы можете создать главный и подчиненный мезо в режиме высокой доступности), но это не совсем интересно.
Я предпочитаю реализовать сбои как функцию там, чтобы иметь возможность управлять любыми проблемами или сбоями в инфраструктуре. Например, если вы хотите что-то относительно безопасное, вам понадобится минимум 3 сервера для ведущей части плюс 6 серверов для ведомой части.
В моей инфраструктуре мы действительно используем небольшой Linux плюс докер (который сейчас часто называют атомарными дистрибутивами) на мастерах и минимальный Linux (CentOS / RHEL 7 со строго необходимыми двоичными файлами и инструментами, но не атомарными дистрибутивами) плюс mesos-slave наверху.
Это позволяет нам защитить нашу инфраструктуру, как если бы кто-либо из подчиненных или главного устройства умер, сбой будет обнаружен другим участником, и подключенные службы или задачи будут аннулированы, а затем перезапущены на другом узле в зависимости от сбоя вашего приложения и восстановления. политики.
Но, опять же, это моя установка и, вероятно, есть способ лучше реализовать.