Узлу кластера в дата-центре Hetzner назначается основной IP-адрес и выделяется подсеть дополнительных IP-адресов. Виртуальным машинам (ВМ) на этом узле могут быть присвоены адреса только из выделенной подсети.
На ВМ узла кластера должна быть настроена маршрутизация типа точка-точка (PtP) с доступом к шлюзу. Шлюз должен иметь доступ во внешнюю сеть (интернет).
Подготовка сервера
-
Установите на сервер VMmanager и IPmanager:
wget http://cdn.ispsystem.com/install.sh && sh install.sh VMmanager && sh install.sh IPmanager
- Настройте интеграцию VMmanager c IPmanager. Подробнее см. Интеграция с IPmanager.
-
Обновите ПО QEMU и libvirt:
yum install centos-release-qemu-ev
yum update
-
Отключите сервис NetworkManager:
service NetworkManager stop
service NetworkManager disable
- Если на сервере запущен сервис systemd-networkd, отключите его. Подробнее см. Как отключить systemd-networkd на узле кластера?
Создание типа адресов для установки ВМ
Чтобы ВМ могла получить специальный адрес во время установки, создайте тип временных адресов в VMmanager и IPmanager:
-
Добавьте в конфигурационный файл VMmanager /usr/local/mgr5/etc/vmmgr.conf параметр TempIpType.
TempIpType temp
Пояснение - Войдите в IPmanager с правами администратора и добавьте созданный тип адресов: Настройки → Группы IP-адресов → Создать → укажите Наименование типа адресов → OK.
Сетевые настройки
Рассмотрим пример настройки, когда для временных IP-адресов используется диапазон 10.38.200.2-10.38.200.254 в сети 10.38.200.0/24, в качестве шлюза используется IP-адрес 10.38.200.1.
-
Присвойте адрес шлюза интерфейсу vmbr0. Для этого добавьте в файл /etc/sysconfig/network-scripts/ifcfg-vmbr0 строки:
DEVICE=vmbr0 TYPE="Bridge" BOOTPROTO=static ONBOOT=yes DELAY=0 IPADDR="10.38.200.1" NETMASK="255.255.255.0"
-
Создайте сетевой маршрут в файле /etc/sysconfig/network-scripts/route-vmbr0:
<Hetzner_range> via 10.38.200.1 dev vmbr0
Пояснения -
Перезапустите сервис network:
service network restart
- Добавьте узел кластера в VMmanager. Подробнее см. Подключение узлов кластера.
-
Укажите следующие настройки в файле /etc/sysconfig/iptables:
# Generated by iptables-save v1.4.21 on Fri Feb 7 09:34:14 2020 *mangle :PREROUTING ACCEPT [4517277:45554597170] :INPUT ACCEPT [4159965:44329883800] :FORWARD ACCEPT [355554:1224597153] :OUTPUT ACCEPT [3842346:309202071] :POSTROUTING ACCEPT [4062368:1497969709] COMMIT # Completed on Fri Feb 7 09:34:14 2020 # Generated by iptables-save v1.4.21 on Fri Feb 7 09:34:14 2020 *nat :PREROUTING ACCEPT [85220:5929079] :INPUT ACCEPT [3675:206292] :OUTPUT ACCEPT [4811:326750] :POSTROUTING ACCEPT [7336:463844] -A POSTROUTING -s 192.168.0.0/24 -d 224.0.0.0/24 -j RETURN -A POSTROUTING -s 192.168.0.0/24 -d 255.255.255.255/32 -j RETURN -A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -j MASQUERADE -A POSTROUTING -s 10.38.200.0/24 ! -d 10.38.200.1/32 -j MASQUERADE COMMIT # Completed on Fri Feb 7 09:34:14 2020 # Generated by iptables-save v1.4.21 on Fri Feb 7 09:34:14 2020 *filter :INPUT ACCEPT [305:15438] :FORWARD ACCEPT [42499:185558218] :OUTPUT ACCEPT [79491:12424505] -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i virbr1 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i virbr1 -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -i virbr1 -p udp -m udp --dport 67 -j ACCEPT -A INPUT -i virbr1 -p tcp -m tcp --dport 67 -j ACCEPT -A INPUT -p udp -m udp --dport 892 -j ACCEPT -A INPUT -p udp -m udp --dport 875 -j ACCEPT -A INPUT -p udp -m udp --dport 662 -j ACCEPT -A INPUT -p udp -m udp --dport 32769 -j ACCEPT -A INPUT -p udp -m udp --dport 2049 -j ACCEPT -A INPUT -p tcp -m tcp --dport 892 -j ACCEPT -A INPUT -p tcp -m tcp --dport 875 -j ACCEPT -A INPUT -p tcp -m tcp --dport 662 -j ACCEPT -A INPUT -p tcp -m tcp --dport 32803 -j ACCEPT -A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT -A INPUT -p tcp -m tcp --dport 1500 -j ACCEPT -A INPUT -p tcp -m tcp --dport 111 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5900:6900 -j ACCEPT -A INPUT -p tcp -m tcp --dport 15900:16900 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A FORWARD -d 192.168.0.0/24 -o virbr1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.0.0/24 -i virbr1 -j ACCEPT -A FORWARD -i virbr1 -o virbr1 -j ACCEPT -A FORWARD -o virbr1 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -i virbr1 -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -o virbr1 -p udp -m udp --dport 68 -j ACCEPT COMMIT
-
Разрешите пересылку (forwarding) IP-пакетов:
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
-
Перезапустите iptables:
service iptables restart
- Для автоматического добавления на виртуальную машину IP-адреса с маской 255.255.255.255 (/32) и маршрутов через определённый удалённый адрес:
-
Укажите адрес шлюза в параметре NextHopIPv4 конфигурационного файла VMmanager /usr/local/mgr5/etc/vmmgr.conf:
NextHopIPv4 10.38.200.1
-
Перезапустите VMmanager:
/usr/local/mgr5/sbin/mgrctl -m vmmgr exit
-
Перезапустите сервис network:
service network restart
-
Настройка IPmanager
- Отключите проверку принадлежности адреса шлюза добавляемой сети. Для этого:
-
Добавьте в файл /usr/local/mgr5/etc/ipmgr.conf строку "Option DisableGatewayChecking":
echo "Option DisableGatewayChecking" >> /usr/local/mgr5/etc/ipmgr.conf
-
Перезапустите IPmanager:
/usr/local/mgr5/sbin/mgrctl -m ipmgr exit
-
- Создайте в IPmanager сеть 10.38.200.0/24 со шлюзом 10.38.200.1 и сеть, выделенную дата-центром, со шлюзом 10.38.200.1. Чтобы создать сеть, войдите в IPmanager с правами администратора и перейдите в Главное → Сети → Создать.
- Настройте права пользователя IPmanager, для которого была настроена интеграция с VMmanager:
- Войдите в IPmanager с правами суперпользователя (root).
- Перейдите в Главное → Пользователи → выберите пользователя → Права.
- Добавьте сеть 10.38.200.0/24 с разрешённой группой temp.
- Добавьте сеть, выделенную дата-центром, с разрешённой группой public.