Кластер Оплёта
Кластер Оплёта -- это связка ресурсов Брацка Облака, обеспечивающая отказоустойчивость Оплёта, а также распределителей нагрузки (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"