Кластер Оплёта

Материал из Брацка Правки
Перейти к: навигация, поиск

Кластер Оплёта -- это связка ресурсов Брацка Облака, обеспечивающая отказоустойчивость Оплёта, а также распределителей нагрузки (load balancer) остальных кластеров.


Положение дел

Инфраструктура

По состоянию на сентябрь 2021, управление пользователями осуществляется с дроплета (VPS) в Нью-Йоркском вычислительном центре DigitalOcean (DO). Другой дроплет во Франции поддерживает тестировку, но практически не используется.

Задачи

Структура нуждается в переделке на отказоустойчивый кластер прежде всего и, ещё лучше, географически распределённый (Geocast). В перспективе к двум дроплетам в Нью-Йорке и Франции можно добавить ещё один в Сингапуре.

Наработки

Сам DO предлагает load balancer и floating IP address, но эти решения вроде требовали, чтобы дроплеты были расположены в едином вычислительном центре, что не планируется. Скорее всего, решение должно быть построено на основе HAProxy.
Эксперементы проводились на Опытне Облаке. HAProxy работает прекрасно. Проблема настройки HAProxy упирается в проблему настройки самого приложения. По умолчанию любое приложение слушает сервер, на котором само находится, то есть localhost. При отключении одного сервера, мы подсоединяемся к друому и т.д.
При более подробной настройке самого приложения, в частности, Опытной Правки, оказалось, что оно тоже работает, но очень медленно. Время загрузки страницы примерно 118 с. Начав эксперементировать с этой проблемой, был прямо указан на нужный сервер, и приложение заработало отлично. Так что, похоже, дело в HAProxy.
В связи с этой темой были настроены iptables:
  • iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • iptables -A INPUT -i lo -j ACCEPT -m comment --comment "трафик LOOPBACK"
  • iptables -A INPUT -m multiport -p tcp --dport 80,443 -m comment --comment "web ports" -j ACCEPT
  • iptables -A INPUT -m state --state ESTABLISHED,RELATED -m comment --comment "ответы из мира на наши запросы" -j ACCEPT
На MariaDB Galera Cluster:
  • iptables -A INPUT -m multiport -p tcp --dport 3306,4567,4568,4444 -m comment --comment "порты, требующиеся для связи между узлами" -j ACCEPT
  • iptables -A INPUT -p udp --dport 4567 -j ACCEPT -m comment --comment "тоже Galera"