Документация VMmanager 5 KVM

Как настроить узел кластера в дата-центре Hetzner?

Узлу кластера в дата-центре Hetzner назначается основной IP-адрес и выделяется подсеть дополнительных IP-адресов. Виртуальным машинам (ВМ) на этом узле могут быть присвоены адреса только из выделенной подсети.

На ВМ узла кластера должна быть настроена маршрутизация типа точка-точка (PtP) с доступом к шлюзу. Шлюз должен иметь доступ во внешнюю сеть (интернет).

Подготовка сервера

  1. Установите на сервер VMmanager и IPmanager:

    wget http://cdn.ispsystem.com/install.sh && sh install.sh VMmanager && sh install.sh IPmanager
  2. Настройте интеграцию VMmanager c IPmanager. Подробнее см. Интеграция с IPmanager.
  3. Обновите ПО QEMU и libvirt:

    yum install centos-release-qemu-ev
    
    yum update
    
  4. Отключите сервис NetworkManager:

    service NetworkManager stop
    service NetworkManager disable
  5. Если на сервере запущен сервис systemd-networkd, отключите его. Подробнее см. Как отключить systemd-networkd на узле кластера?

Создание типа адресов для установки ВМ

Чтобы ВМ могла получить специальный адрес во время установки, создайте тип временных адресов в VMmanager и IPmanager:

  1. Добавьте в конфигурационный файл VMmanager /usr/local/mgr5/etc/vmmgr.conf параметр TempIpType.

    TempIpType temp
    Пояснение
  2. Войдите в IPmanager с правами администратора и добавьте созданный тип адресов: Настройки → Группы IP-адресов → Создать → укажите Наименование типа адресов → OK.

Сетевые настройки

Рассмотрим пример настройки, когда для временных IP-адресов используется диапазон 10.38.200.2-10.38.200.254 в сети 10.38.200.0/24, в качестве шлюза используется IP-адрес 10.38.200.1.

  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"
    
  2. Создайте сетевой маршрут в файле /etc/sysconfig/network-scripts/route-vmbr0:

    <Hetzner_range> via 10.38.200.1 dev vmbr0
    Пояснения
  3. Перезапустите сервис network:

    service network restart 
  4. Добавьте узел кластера в VMmanager. Подробнее см. Подключение узлов кластера.
  5.  Укажите следующие настройки в файле /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
  6. Разрешите пересылку (forwarding) IP-пакетов:

    sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
    
    sysctl -p
  7. Перезапустите iptables:

    service iptables restart 
  8. Для автоматического добавления на виртуальную машину IP-адреса с маской 255.255.255.255 (/32) и маршрутов через определённый удалённый адрес:
    1. Укажите адрес шлюза в параметре NextHopIPv4 конфигурационного файла VMmanager /usr/local/mgr5/etc/vmmgr.conf:

      NextHopIPv4 10.38.200.1
    2. Перезапустите VMmanager:

      /usr/local/mgr5/sbin/mgrctl -m vmmgr exit
    3. Перезапустите сервис network:

      service network restart

Настройка IPmanager

  1. Отключите проверку принадлежности адреса шлюза добавляемой сети. Для этого:
    1. Добавьте в файл /usr/local/mgr5/etc/ipmgr.conf строку  "Option DisableGatewayChecking":

      echo "Option DisableGatewayChecking" >>  /usr/local/mgr5/etc/ipmgr.conf
    2. Перезапустите IPmanager:

      /usr/local/mgr5/sbin/mgrctl -m ipmgr exit
  2. Создайте в IPmanager сеть 10.38.200.0/24 со шлюзом 10.38.200.1 и сеть, выделенную дата-центром, со шлюзом 10.38.200.1. Чтобы создать сеть, войдите в IPmanager с правами администратора и перейдите в ГлавноеСети → Создать.
  3. Настройте права пользователя IPmanager, для которого была настроена интеграция с VMmanager:
    1. Войдите в IPmanager с правами суперпользователя (root).
    2. Перейдите в Главное → Пользователи → выберите пользователя → Права.
    3. Добавьте сеть 10.38.200.0/24 с разрешённой группой temp.
    4. Добавьте сеть, выделенную дата-центром, с разрешённой группой public.